前言:结合各类论坛资料自己写的小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);
}