redis实现异步队列

Posted wywdahai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis实现异步队列相关的知识,希望对你有一定的参考价值。

1、一般使用list结构作为队列,rpush生产消息,lpop消费消息。当lpop没有消息的时候,要适当sleep一会再重试。

2、如果不用sleep,那么list还有个指令叫blpop,在没有消息的时候,它会阻塞住直到消息到来。

3、如何实现生产一次消费多次?

使用pub/sub主题订阅者模式,可以实现1:N的消息队列。

4、如何实现延时队列?

使用sortedset,拿时间戳作为score,消息内容作为key调用zadd来生产消息,消费者用zrangebyscore指令获取N秒之前的数据轮询进行处理。

 

以上是关于redis实现异步队列的主要内容,如果未能解决你的问题,请参考以下文章

Redis基于(ListPubSubStream消费者组)实现消息队列,基于Stream结构实现异步秒杀下单

异步redis队列实现 数据入库

异步redis队列实现 数据入库

消息队列为啥用redis实现

php+redis实现消息队列

python3+celery+redis实现异步任务