redis消息通知
Posted wsfu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis消息通知相关的知识,希望对你有一定的参考价值。
1、任务队列
对于发送邮件或者是复杂计算这样的操作,常常需要比较长的时间,为了不影响web应用的正常使用,避免页面显示被阻塞,常常会将此类任务存入任务队列交由专门的进程去处理。
队列最基础的方法如下:
有新任务的时候,通过lpush推送任务到队列中
......
while(true){
if(队列有无新任务)
有,则rpop取出新任务
else
等待一段时间,避免频繁检查队列
}
对于上述的策略,redis有更有一些的方法,即使用BRPOP命令
有新任务的时候,通过lpush推送任务到队列中 ...... while(true){ BRPO取出新任务 执行任务 }
如果队列中没有元素,则会阻塞列表直到等待超时或发现可弹出元素为止。假如在指定时间内没有任何元素被弹出,则返回一个 nil 和等待时长。
brpop命令格式如:brpop 列表键名 等待时间
1)如果等待时间设置为0,则表示不限制等待时常。经测试,开启两个redis客户端连接,当客户端A被此命令阻塞时,另一个 客户端B王队列在推送任务,客户端A即刻取出该新任务。
2)如果设置了等待时间,则超时后会返回nil和等待时长。
以上是关于redis消息通知的主要内容,如果未能解决你的问题,请参考以下文章