Public functionGetanchorbypopularity ($page,$pagesize){ //Verify the correctness of the parameters 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= ""; } //read data from MySQL database//If read data is not empty, data is stored in Redis if(!Empty($list)){ $this->redis->setex ($redisKey,$this->cachetime,$list); } } Else{ $list=unserialize($redisVal); } return $list; }
Description
1. The main logic is to look up the Redis first, and if it doesn't exist, find it in MySQL and deposit the found data in Redis.
2. One of the trick points here is that the setting of the Redis key is guaranteed to be non-repeatable by using the function name plus arguments.
Using Mysql+redis to complete the paging read function