您现在的位置是:网站首页> php专栏 工具分享
php+redis实现redis消息队列代码实例
亦然2019-07-18 14:22:32【工具分享】人已围观
简介 php+redis消息队列是php+mysql性能不足时的一个中间间处理方案。通过这个中间的处理,保证的数据的可用性和准确性。用于服务器瞬间请求大,数据库压力大的情况。如并发量大导致的超卖、并发量大导致的数据重复情况。
一个小例子,入队文章标题和出对文章标题
//读取实例 public function getinfo(){ $sql = 'select title from hx_article'; $result = $this->getinfos('tutoriallist',$sql); //redis key不为空 直接读取redis if(empty($result)){ $redis = new \Redis(); $redis->connect('127.0.0.1', 6379); //获取存储的数据并输出 $result = $redis->lrange('tutoriallist',0,-1); foreach ($result as $key => $value) { $result[$key] = json_decode($value,true); } dump($result); exit; } } function getinfos($key,$sql){ $redis = new \Redis(); $redis->connect('127.0.0.1', 6379); //获取存储的数据 $result = $redis->lrange($key,0,1); if(empty($result)){ $result = Db::query($sql); //重新将缓存队列的形式放入数据库 foreach ($result as $k => $v) { //这个地方要从右边插入,来保证跟数据库顺序一样 $redis->rpush($key,json_encode($v)); } }else{ $result = 0; } return $result; }
很赞哦!()