標籤:tar des his color blog == 參數 邏輯 資料庫
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完成分頁讀取功能