我们知道redis支持很多种结构的数据,那么如何使用redis作为异步队列使用呢?
- 使用list结构,rpush生产消息,lpop消费消息。
- lpop没有消息的时候,可适当sleep后重试。
- 若不使用sleep方案,可使用blpop消费消息,它会阻塞直至消息到来。
pub/sub的主题订阅者模式的优缺点
优点:可实现生产一次消费多次,实现1:N的消息队列。
缺点:在消费者下线的情况下,生产的消息会丢失,需要专业的消息队列如rabbitMQ。
如何使用redis实现演示队列?
可配合使用sortedset,时间戳为score,消息内容为key,调用zadd来生产消息。消费者用zrangebyscore指令获取数据轮询进行处理。
以上总结参考:https://mp.weixin.qq.com/s/HEEhaVLNMGr4W06hPxWKjA