使用過 Redis 做異步隊列么,你是怎么用的?


一般使用 list 結構作為隊列,rpush 生產消息,lpop 消費消息 lpop 沒有 

消息的時候要適當 sleep 一會再重試

如果對方追問可不可以不用 sleep

list 還有個指令叫 blpop,在沒有消息的時候它會阻塞住直到消息到來如果對 

方追問能不能生產一次消費多次呢使用 pub/sub 主題訂閱者模式可以實現 

1:N 的消息隊列

如果對方追問 pub/sub 有什么缺點

在消費者下線的情況下生產的消息會丟失得使用專業的消息隊列如 RabbitMQ

如果對方追問 redis 如何實現延時隊列

我估計現在你很想把面試官一棒打死如果你手上有一根棒球棍的話怎么問的這 

么詳細但是你很克制然后神態自若的回答道使用 sortedset,拿時間戳作為 

score,消息內容作為 key 調用 zadd 來生產消息消費者用 zrangebyscore 指令 

獲取 N 秒之前的數據輪詢進行處理到這里面試官暗地里已經對你豎起了大拇 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM