Redis中,消费者如何高效地知道list中有新消息,而不是通过不断轮询?
Redis提供了brpop接口,该接口允许消费者设置一个超时时间进行等待。如果list为空,Redis服务端会等待直到list中有新数据后再返回,或者等待到超时时间后返回空。这种方式实现了长轮询,有效减少了无效的轮询请求,提高了资源利用率。
示例命令:
# 消费者阻塞式读取listA,如果有数据立刻返回,否则最多等待10秒
brpop listA 10
1) "listA"
2) "msg1"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。