数据库存贮都用list形式 要存2个队列 1个用作消息队列保存到数据 还有个 就是用来实时读取数据在redis
$redis->lpush($queenkey, json_encode($array));$redis->lpush($listkey, json_encode($array));
public function insertinfo(){$infos = array('info1' => mt_rand(10,100), 'info2' => mt_rand(10,100));$this->insertinfos($infos, 'tutorial-list','tutoriallist');} public function insertinfos($array, $queenkey,$listkey){//连接本地的 Redis 服务$redis = new \Redis();$redis->connect('127.0.0.1', 6379);//存储数据到列表中$redis->lpush($queenkey, json_encode($array));$redis->lpush($listkey, json_encode($array));}读取 逻辑当redis key没有了 就读取数据库 然后重新写入list 有的话就读取redis数据
/*读取实例*/public function getinfo(){$sql = 'select * from mobantestinfo';$result = $this->getinfos('tutoriallist', $sql);//redis key不为空 直接读取redisif(empty($result)){//连接本地的 Redis 服务$redis = new \Redis();$redis->connect('127.0.0.1', 6379);// 获取存储的数据并输出$result = $redis->lrange('tutoriallist', 0, -1);foreach ($result as $k=>$v){$result[$k]=json_decode($v,true);}print_r($result);exit();}}function getinfos($key, $sql){//连接本地的 Redis 服务$redis = new \Redis();$redis->connect('127.0.0.1', 6379);// 获取存储的数据$result = $redis->lrange($key, 0, 1);if (empty($result)) {$VModel = new HuanShanVoteModel();$result = $VModel->query($sql);//重新将缓存队列的形式放入数据库 foreach ($result as $k=>$v){//这个地方要从右边插入 来保证跟数据库顺序一样$redis->rpush($key,json_encode($v)); }} else {$result=0;}return $result;}本篇文章到此结束,如果您有相关技术方面疑问可以联系我们技术人员远程解决,感谢大家支持本站!