redis消息队列

消息队列用途:解耦,异步,消峰。
redis实现消息队列的方式:使用List作为key。(先进先出)
实现方法:①lpush,rpop 非阻塞式 ②lpush,brpop 阻塞式
注:柱塞式队列–当队列为空/满时,无法从队列中删除/增加元素。(所谓阻塞:在某种情况下,线程被挂起,直到触发满足条件自动唤醒线程)

语法样式1:(实现优先级消息队列
redis 192.168.8.123>brpop listKeyName1 listKeyName2 listKeyName3 … timeOut(超时时间–单位秒)
语法样式2:
redid 192.168.8.123>brpop listKeyName timeout(超时时间–单位秒)
注意事项:

1 listKeyName listKeyName1 listKeyName2 listKeyName3 …必须为list(列表)类型,或不存在于redis数据库中。
2 timeOut 必须为一个大于等于0的整数
3 当timeout 等于0 挂起等待时间为无限大
4 当timeout 大于0 挂起等待时间为timeout秒数
5 如果客户端命令等待时间大于超时时间后,所有的元素列表都为空,此时会返回(nil)
6 brpop命令执行方法 首先获取 listKeyName1 中的元素,直到listKeyName1 阻塞,继续 查找listKeyName2 中的元素 ,如果为空,则继续查找listKeyName3 依次查找。
当brpop命令在阻塞等待时,此时listKeyName1 listKeyName2 listKeyName3 … 中任意一个键中存在元素,则客户端会返回相应的键值,并返回相应的元素值,跳出命令。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值