細心的你可能發現了,本系列課程中竟然出現了三個課時都是在說消息隊列,講了程序級別的消息隊列以及延遲消息隊列的實現,又講了常見的消息隊列中間件 RabbitMQ、Kafka 等,由此可見消息隊列在整個 Java 技術體系中的重要程度。本課時我們將重點來看一下 Redis 是如何實現消息隊列的。
我們本課時的面試題是,在 Redis 中實現消息隊列的方式有幾種?
回答:
早在 Redis 2.0 版本之前使用 Redis 實現消息隊列的方式有兩種:
使用 List 類型實現
使用 ZSet 類型實現
其中使用** List 類型實現的方式最爲簡單和直接**,它主要是通過 lpush、rpop 存入和讀取實現消息隊列的,如下圖所示:
lpush 可以把最新的消息存儲到消息隊列(List 集合)的首部,而 rpop 可以讀取消息隊列的尾部,這樣就實現了先進先出,如下圖所示: