Redis Stream 是 Redis 5.0 版本中引入的一種新的數(shù)據(jù)結(jié)構(gòu),它用于實(shí)現(xiàn)簡(jiǎn)單但功能強(qiáng)大的消息傳遞模式。
這篇文章,我們聊聊 Redis Stream 基本用法 ,以及如何在 SpringBoot 項(xiàng)目中應(yīng)用 Redis Stream 。
1 基礎(chǔ)知識(shí)
Redis Stream 的結(jié)構(gòu)如下圖所示,它是一個(gè)消息鏈表,將所有加入的消息都串起來(lái),每個(gè)消息都有一個(gè)唯一的 ID 和對(duì)應(yīng)的內(nèi)容。
XADD key ID field value [field value ...]
每個(gè) Redis Stream 都有唯一的名稱 ,對(duì)應(yīng)唯一的 Redis Key 。
同一個(gè) Stream 可以掛載多個(gè)消費(fèi)組 ConsumerGroup , 消費(fèi)組不能自動(dòng)創(chuàng)建,需要使用 XGROUP CREATE 命令創(chuàng)建。
每個(gè)消費(fèi)組會(huì)有個(gè)游標(biāo) last_delivered_id,任意一個(gè)消費(fèi)者讀取了消息都會(huì)使游標(biāo) last_delivered_id 往前移動(dòng) ,標(biāo)識(shí)當(dāng)前消費(fèi)組消費(fèi)到哪條消息了。
XRANGE key start end [COUNT count]
消費(fèi)組 ConsumerGroup 同樣可以掛載多個(gè)消費(fèi)者 Consumer , 每個(gè) Consumer 并行的讀取消息,任意一個(gè)消費(fèi)者讀取了消息都會(huì)使游標(biāo) last_delivered_id 往前移動(dòng)。