使用过 Redis 做异步队列么,你是怎么用的?

一般使用 list 结构作为队列,rpush 生产消息,lpop 消费消息 lpop 没有 

消息的时候要适当 sleep 一会再重试

如果对方追问可不可以不用 sleep

list 还有个指令叫 blpop,在没有消息的时候它会阻塞住直到消息到来如果对 

方追问能不能生产一次消费多次呢使用 pub/sub 主题订阅者模式可以实现 

1:N 的消息队列

如果对方追问 pub/sub 有什么缺点

在消费者下线的情况下生产的消息会丢失得使用专业的消息队列如 RabbitMQ

如果对方追问 redis 如何实现延时队列

我估计现在你很想把面试官一棒打死如果你手上有一根棒球棍的话怎么问的这 

么详细但是你很克制然后神态自若的回答道使用 sortedset,拿时间戳作为 

score,消息内容作为 key 调用 zadd 来生产消息消费者用 zrangebyscore 指令 

获取 N 秒之前的数据轮询进行处理到这里面试官暗地里已经对你竖起了大拇 

但是他不知道的是此刻你却竖起了中指在椅子背后

猜你喜欢

转载自www.cnblogs.com/programb/p/12819439.html
今日推荐