开发者社区> 问答> 正文

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

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

展开
收起
迪哒迪滴喵 2024-08-13 18:37:52 18 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 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ApsaraDB for Redis——与创客同行 立即下载
微博的Redis定制之路 立即下载
云数据库Redis版的开源之路 立即下载