开发者社区> 问答> 正文

Redis中,消费者如何高效地知道list中有新消息,而不是通过不断轮询?

Redis中,消费者如何高效地知道list中有新消息,而不是通过不断轮询?

展开
收起
迪哒迪滴喵 2024-08-13 18:37:52 26 0
1 条回答
写回答
取消 提交回答
  • Redis提供了brpop接口,该接口允许消费者设置一个超时时间进行等待。如果list为空,Redis服务端会等待直到list中有新数据后再返回,或者等待到超时时间后返回空。这种方式实现了长轮询,有效减少了无效的轮询请求,提高了资源利用率。
    示例命令:

    # 消费者阻塞式读取listA,如果有数据立刻返回,否则最多等待10秒 
    brpop listA 10 
    1) "listA" 
    2) "msg1"
    

    image.png

    2024-08-13 21:21:28
    赞同 2 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Redis在唯品会的应用实践——架构演进与功能定制 立即下载
微博的Redis定制之路 立即下载
云数据库Redis版的开源之路 立即下载