您现在的位置是:网站首页> 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;
}
很赞哦!()




