zoukankan      html  css  js  c++  java
  • 使用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的设置使用函数名加参数的方式可以保证不重复。

  • 相关阅读:
    四种losses
    Yale数据库上的人脸识别
    Supervised Hashing with Kernels, KSH
    Spherical Hashing,球哈希
    YOLO(You Only Look Once)
    Iterative Quantization,ITQ
    Locality Sensitive Hashing,LSH
    循环神经网络
    Zero-shot learning(零样本学习)
    王者荣耀交流协会
  • 原文地址:https://www.cnblogs.com/godlei/p/6580905.html
Copyright © 2011-2022 走看看