public function getAnchorByPopularity($page, $pagesize){
//验证参数的正确性
if(!is_numeric($page) || !is_numeric($pagesize)){
throw new Exception(__METHOD__ . "error param");
}
$page = ($page > 0) ? $page - 1 : 0;
$pagesize = ($pagesize > 0) ? $pagesize : 20; $param = func_get_args();
$redisKey = "autoapp_".__METHOD__ . implode("_", $param);
$redisVal = $this->redis->get($redisKey);
if($redisVal === false){
if ($pagesize > 0) {
$start = $page * $pagesize;
$order = "FPopularity desc";
$limit = "{$start}, {$pagesize}";
// $limit = "{0},{1}";
} else {
$limit = "";
}
//从MySQL数据库读取数据 //如果读取数据不为空,把数据存入redis
if(!empty($list)){
$this->redis->setex($redisKey, $this->cacheTime, $list);
}
}
else{
$list = unserialize($redisVal);
}
return $list;
}

说明:

1.主要的逻辑就是先从redis中查找,如果不存在的话就在mysql中查找,并把找到的数据存入redis。

2.这里的一个技巧点是redis的key的设置使用函数名加参数的方式可以保证不重复。

最新文章

  1. android ListView 九大重要属性详细分析、
  2. AppCan接入微信并且进行文字分享
  3. hive报lzo Premature EOF from inputStream错误
  4. 论XCODE工程里使用的宏定义.
  5. 网页播放amr格式文件
  6. 怎么样调试正在运行的exe?
  7. .NET中ToString()的用法
  8. ios--图片处理(修改、保存)UIGraphicsBeginImageContext
  9. 每天一个JS 小demo之商品筛选。主要知识点:DOM方法综合运用
  10. python学习之读写csv文件(使用pandas)
  11. 用Webstrom搭建Vue项目
  12. python+selenium九:ddt数据驱动
  13. 安装httpd服务配置
  14. 【AtCoder】ARC100 题解
  15. delphi连接mysql不用添加DSN(mysql connector odbc 5.1版)
  16. php中接收参数,不论是来自GET还是POST方法
  17. Spring源码解析 – @Configuration配置类及注解Bean的解析
  18. form表单序列化之后追加字段
  19. [AHOI2004]数字迷阵
  20. libnetwork 源码浅析

热门文章

  1. IntelliJ IDEA编码格式设置
  2. android onActivityResult的执行
  3. typedef 与 #define的区别
  4. Postman简明教程
  5. 谈谈动态地加载Jquery库文件的方法
  6. JS设计模式——9.组合模式
  7. C#连接MySQL 操作步骤
  8. docker stack 部署 mysql 5.6
  9. TF-图像的深度和通道的概念(转)
  10. table中的td等长(不随内容大小变化)