phpredis提高消息队列的实时性方法(推荐)
发布时间:2020-05-25 05:51:12 所属栏目:MsSql 来源:互联网
导读:数据库存贮都用list形式要存2个队列1个用作消息队列保存到数据还有个就是用来实时读取数据在redis
|
数据库存贮都用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 key没有了 就读取数据库 然后重新写入list 有的话就读取redis数据
/*读取实例*/
public function getinfo()
{
$sql = 'select * from mobantestinfo';
$result = $this->getinfos('tutoriallist',$sql);
//redis key不为空 直接读取redis
if(empty($result)){
//连接本地的 Redis 服务
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
// 获取存储的数据并输出
$result = $redis->lrange('tutoriallist',-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,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;
}
以上就是小编为大家带来的phpredis提高消息队列的实时性方法(推荐)全部内容了,希望大家多多支持编程小技巧~ (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- MSSQL 解决link导数据至oracle出错:Server: Msg 7399, Lev
- SQL Server存储过程存储返回值
- SQL Server sql 存储过程分页代码 支持亿万庞大数据量入门实
- SQL Server 无法验证产品密匙的完美解决方案
- MySQL 5.5.x my.cnf参数配置优化详解
- SQL查询根据收费日期选择有效的成本费率
- sql – 如何检查存储在varchar列中的逗号分隔列表中是否包含
- sql-server – SSRS 2016 – 看不到参数
- 详解MySQL误操作后怎样进行数据恢复
- linq-to-entities – LINQ“.Include”orderby in subquery
