Redis5 的新特性 Redis Stream
Redis Stream 介紹
Redis Stream 主要用於訊息佇列(MQ,Message Queue),Redis 本身是有一個 Redis 釋出訂閱 (pub/sub) 來實現訊息佇列的功能,但它有個缺點就是訊息無法持久化,如果出現網路斷開、Redis 當機等,訊息就會被丟棄。
簡單來說釋出訂閱 (pub/sub) 可以分發訊息,但無法記錄歷史訊息。
而 Redis Stream 提供了訊息的持久化和主備複製功能,可以讓任何客戶端訪問任何時刻的資料,並且能記住每一個客戶端的訪問位置,還能保證訊息不丟失。
Redis Stream 的結構如下所示,它有一個訊息連結串列,將所有加入的訊息都串起來,每個訊息都有一個唯一的 ID 和對應的內容:
Redis Stream 基本命令
- 使用 XADD命令向佇列新增訊息,如果指定的佇列不存在,則建立一個佇列,XADD 語法格式:
XADD luolistream * name luoli
- luolistream 佇列名稱,如果不存在就建立
- * 訊息 id,我們使用 * 表示由 redis 生成,可以自定義,但是要自己保證遞增性
- name luoli 傳送的訊息
- 使用 XGROUP CREATE 建立消費者組
XGROUP CREATE luolistream group-1 0
- 最後一個0表示從頭開始消費,也你可以使用$代替表示從尾部開始消費,只接受新訊息
- 傳送進去的訊息需要建立一個消費組來對訊息進行消費,一個消費組中可以有多個消費者consumer,但是一個組中只會有一個消費者去消費掉當前的訊息,和Kafka很類似。
- 消費訊息
XREADGROUP GROUP group-1 consumer-luoli COUNT 1 STREAMS luolistream >
- 會在group-1的消費組中建立一個消費者consumer-luoli來進行消費luolistream中的訊息。
以上就是簡單的一些命令,大家可以多敲多練習,後面我會整合Spring Boot
相關文章
- SpringBoot整合Redis
- Linux下安裝Redis
- Java緩衝輸出位元組流BufferedOutputStream
- Redis-11-持久化詳解
- Redis主從複製原理剖析
- 【Redis】利用 Redis 實現分散式鎖
- Redis雪崩、擊穿、穿透
- 用了Redisson的Spring Boot Starter搞的我都想重寫個
- 93面試常問:Redis 記憶體滿了怎麼辦?
- 《.NET 5.0 背鍋案》第7集-大結局:捉拿真凶 StackExchange.Redis.Extensions 歸案
- .NET 5 帶來的新特性 [MemberNotNull] 與 [MemberNotNullWhen]
- flinkSql join redis的hash結構維表簡單實現
- Redis分散式鎖的使用與實現原理
- flink1.10版本StreamGraph生成過程分析
- 99面試常問:中高階開發面試必問的Redis,看這篇就夠了!
- API的使用(3)Arrays 類,Math類,三大特性--繼承
- Spring Cloud 終結篇之訊息驅動--stream 大集合
- C# 9.0新特性詳解系列之二:擴充套件方法GetEnumerator支援foreach迴圈
- redis原始碼學習之slowlog