首页 > 代码库 > 使用MYSQL+Redis完成分页读取功能
使用MYSQL+Redis完成分页读取功能
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的设置使用函数名加参数的方式可以保证不重复。
使用MYSQL+Redis完成分页读取功能
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。