php+redis 缓存

前言:结合各类论坛资料自己写的小demo

只为交流学习做笔记........

/**
 * redis 缓存的使用 就是这一类问题的思路一个简单的demo
 * 简单的不同的业务逻辑基本都是基于这样的一种使用,就是把你需要的信息存入redis,需要的时候拿出来用
 * 写法上可能多种多样,有前置操作
 * 和缓存微信access_token 一样的道理
 */

//实例化redis
$redis = new Redis();
//连接redis
$redis->connect('127.0.0.1',6379);if($redis->get('inner')=='yes' || !$redis->get('inner')){
    //第一次进入,需要缓存
    //连接数据库进行查询
    $db = new mysqli('127.0.0.1','root','root','table');
    $news = Article::findAlls(); // 查询出需要缓存的数据列表
    //将数据存入redis的list中
    $data = json_encode($news);
    $redis->del('news');//把键值删除,防止重复
    $redis->rPush('news', $data);   // rpush将一个或多个值插入到列表的尾部
    $redis->set('inner', 'no',60); //设置键值有效期为60秒 新闻需要实时刷新
}else{
    //从redis中取出数据 还可作分页操作
    $page = $request->get('page',1);// 页码
    $pageSize = $request->get('pageSize',5);// 条数
    $llen = $redis->llen($activity_ranks);  // 总条数
    $start = ($page-1)*$pageSize;   // 分页开始条数计算公式
    $end = $start+($pageSize-1);// 结束条数计算公式 下标为0 所以条数减一
    // 获取列表指定范围内的元素 rpush进去的值lrange取得时候才是从上到下
    $json=$redis->lRange('news', $start, $end); 
    $news=json_decode($json[0],true);
}


版权声明:本文为m0_38071115原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。