您现在的位置是:网站首页> 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;
	}
php


很赞哦!()

亦然

亦然(共32篇文章)

愿你我既可以朝九晚五,也可以浪迹天涯;愿你我既可以拈花把酒,也能围炉诗书茶。