redis队列去重_phpredis提高消息队列的实时性方法(推荐)

news/2024/7/3 5:58:38

数据库存贮都用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不为空 直接读取redis

if(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;

}

以上就是小编为大家带来的phpredis提高消息队列的实时性方法(推荐)全部内容了,希望大家多多支持脚本之家~


http://www.niftyadmin.cn/n/2751132.html

相关文章

本周ASP.NET英文技术文章推荐[02/04 - 02/10]

摘要 本期内容较少,共有5篇文章: UpdateControls:UpdateHistory和AnimatedUpdatePanel 我的《Visual Studio Orcas第一眼印象》演讲稿 Cookie的压缩 为Windows平台优化过的PHP 5.2.1终于发布了 微软公司的数字化冰屋![1] UpdateCo…

Android通过浏览器打开app页面并且传递值

最近公司有个需求,要求从第三方网页端打开一个网页,然后在网页中点击“下载”,“打开”按钮,在app端进行下载和打开操作。这里记录下方法。 首先,网页和app页面进行交互,其实会很快想到JS交互,但…

Authentication error: Unable to respond to any of these challenges

网上说由于APPKEY AND APPSECRET错误的原因.在我这里也差不多,也是没有通过,是由于我写了sina 和 tencent的接口,将获得的accesstoken and accesssecret存入数据库,取的时候没有注意,将sina的错取成了tencent,所以导致了此错误.

DataRead和DataSet的异同

第一种解释 DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection(俗称:非断开式连接),在线操作数据库时,任何对SqlConnection的操作都会引发DataReader的异常。因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的。…

LeetCode Valid Parentheses

LeetCode解题之Valid Parentheses 原题 推断一个仅仅包括各种括号符号的字符串中括号的匹配情况。 注意点: 字符串中仅仅会包括”(“,”)”,”[“,”]”,”{“,”}”这些字符括号匹配要注意顺序,字符串”([)]”是错误的匹配样例: 输入: s”()…

参对象和map_AI论技| mAP提升40%,更快更精准的YOLO来了!还支持实例分割?!

不久前给大家详细介绍了经典的目标检测算法yolov3,最近基于yolov3的改进版本poly-yolo来了,模型参数量仅为yolov3的60%,但是map却提升了40%,还能应用于实例分割,一起来看看细节和其惊人的效果吧!本文由品览…

如何搭建FTP服务器

7分步阅读FTP服务器可以方便的供用户上传,下载文件,对于我们日常的教学,工作都有着很大的帮助,今天小编就为大家讲解下如何在搭建FTP服务器希望对大家有所帮助。工具/原料电脑一台方法/步骤1首先我们创建一个用户账户用于登录FTP进…

c语言和python实用性_C语言和Python语言,那个更好?

(3)灵活性Python语言的最大优点在于它的灵活性,这在测试领域非常重要,因为测试所面临的业务和需求经常在变化,有时它们甚至无法满足并自行决定,而在这时,你可以使用Python丰富的第三方库轻松找到解决方案。(4)扩张Pyth…