yii2 分页 redis存储

 public function actionShow()
    {
            $page=isset($_GET['page'])?$_GET['page']:1;
            $query = goods::find();
            $countQuery = clone $query;
            $pages = new Pagination(['totalCount' => $countQuery->count(),'pageSize'=>5]);
            $models = $query->offset($pages->offset)
                      ->limit($pages->limit)
                      ->asArray()
                      ->all();

        $redis= new Redis();
        $redis->pconnect("127.0.0.1","6379");
        $redis->select(2);

        if($redis->hlen("$page"."0")<=0){
            foreach($models as $key=>$v){
                $redis->hmset("$page"."$key",$v);
            }
            return $this->render('show', [
                'models' => $models,
                'pages' => $pages,
                'msg'   =>'数据库取值',
            ]);
        }else{
            foreach($models as $key=>$v){
                $b[]=$redis->hmget("$page"."$key",["id","goods_name","goods_stock","goods_price","goods_img","goods_visit"]);
            }
            return $this->render('show', [
                'models' => $b,
                'pages' => $pages,
                'msg'   =>'redis取值',
            ]);
        }
    }

上边代码 加黑 斜体 可以从手册复制  相信各位会改一些需要改成和自己代码一致的地方

接下来 引入redis 类

$page 是需要自己写 从路由上接一下自己的页码

$models 里存放的是所有数据

通过循环  把一个个一维数组 存入redis

需要的时候  一个个取出  然后放入一个数组 变成二维数组 从而可以正常使用

原文地址:https://www.cnblogs.com/npb1026/p/11246645.html