redis延时队列

redis延时队列

介绍

我们平时习惯于使用RabbitmqKafka作为消息队列中间件,来给应用程序之间增加异步消息传递功能。这两个中间件都是专业的消息队列中间件,特性之多超出了大多数人的理解能力。

使用过Rabbitmq的同学知道它使用起来有多复杂,发消息之前要创建Exchange,再创建Queue,还要将QueueExchange通过某种规则绑定起来,发消息的时候要指定routingkey,还要控制头部信息。消费者在消费消息之前也要进行上面一系列的繁琐过程。但是绝大 多数情况下,虽然我们的消息队列只有一组消费者,但还是需要经历上面这些繁琐的过程。

有了 Redis,它就可以让我们解脱出来,对于那些只有一组消费者的消息队列,使用 Redis 就可以非常轻松的搞定。Redis 的消息队列不是专业的消息队列,它没有非常多的高级特性, 没有 ack 保证,如果对消息的可靠性有着极致的追求,那么它就不适合使用。

异步消息队列

Redis 的 list(列表) 数据结构常用来作为异步消息队列使用,使用rpush/lpush操作入队列, 使用 lpop 和 rpop 来出队列。

redis延时队列_第1张图片

127.0.0.1:6379> lpush notfily-queue apple banana pear
(integer) 3
127.0.0.1:6379> llen notfily-queue
(integer) 3
127.0.0.1:6379> lpop notfily-queue
"apple"
127.0.0.1:6379> llen notfily-queue
(integer) 2
127.0.0.1:6379> lpop notfily-queue
"pear"
127.0.0.1:6379> lpop notfily-queue
"banana"
127.0.0.1:6379> lpop notfily-queue
(nil)
127.0.0.1:6379> llen notfily-queue
(integer) 0

你可能感兴趣的:(python,redis,rabbitmq)