2021-04-11 Redis异步队列与延时队列如何实现 Redis异步队列与延时队列如何实现 消息中间件,大家都会想到 Rabbitmq 和 Kafka 作为消息队列中间件,来给应用程序之间增加异步消息传递功能。这两个中间件都是专业的消息队列中间件,特性之多超出了大多数人的理解能力。但是这种属于重量级的应用,使用比较麻烦点。如果是轻量级的,使用 Redis就可以。比如对于那些只有一组消费者的消息队列,使用 Redis 就可以非常轻松的搞定。Redis 的消息队列不是专业的消息队列,它没>有非常多的高级特性,没有 ack 保证,如果对消息的可靠性没有极致的要求,那么它可以拿来使用。异步消息队列Redis 的 list(列表) 数据结构常用来作为异步消息队列使用,使用rpush/lpush操作入队列,使用lpop 和 rpop来出队列。rpush 和 lpop 结合 或者lpush 和rpop 结合;客户端是通过队列的 pop 操作来获取消息,然后进行处理。处理完了再接着获取消息,再进行处理。如此循环往复,这便是作为队列消费者的客户端的生命周期。问题来了可是如果队列空了,客户端就会陷入 pop 的死循环,不停地 pop,没有数据,接着再 pop,又没有数据。这就是浪费... 子沫 2021-04-11 520 阅读 0 评论 2021年04月11日 520 阅读 0 评论