1. 程式人生 > >redis實現異步隊列

redis實現異步隊列

如何實現 sub 消費 push 不用 clas 指令 sortedset edi

1、一般使用list結構作為隊列,rpush生產消息,lpop消費消息。當lpop沒有消息的時候,要適當sleep一會再重試。

2、如果不用sleep,那麽list還有個指令叫blpop,在沒有消息的時候,它會阻塞住直到消息到來。

3、如何實現生產一次消費多次?

使用pub/sub主題訂閱者模式,可以實現1:N的消息隊列。

4、如何實現延時隊列?

使用sortedset,拿時間戳作為score,消息內容作為key調用zadd來生產消息,消費者用zrangebyscore指令獲取N秒之前的數據輪詢進行處理。

redis實現異步隊列