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
相關文章
- 深入理解 Redis 新特性:StreamRedis
- Redis 高階特性 Redis Stream使用Redis
- JDK新特性--Stream流JDK
- Java 8 新特性 StreamJava
- JAVA 1.8 新特性 StreamJava
- JDK 1.8 新特性學習(Stream)JDK
- java8新特性stream流Java
- JDK8新特性之stream()JDK
- Java8新特性--Stream APIJavaAPI
- 求不更學不動之Redis5.0新特性Stream嚐鮮Redis
- JDK8新特性之Stream流JDK
- JDK8新特性(4)—— stream 流JDK
- Redis5.0 新特性Redis
- Java9新特性系列(Stream改進)Java
- Java8新特性探索之Stream介面Java
- Java 8 新特性:Stream 流快速入門Java
- Redis4.0的新特性介紹Redis
- Java8 新特性 —— Stream 流式程式設計Java程式設計
- JDK新特性——Stream程式碼簡潔之道的詳細用法JDK
- Redis服務之Redis5叢集相關命令說明Redis
- Java8 新特性 Stream流操作List集合 (二)Java
- 聊聊 Redis StreamRedis
- Java8新特性——從Lambda表示式到Stream流Java
- Redis 7.0 新功能新特性總覽Redis
- java 8 特性——stream流Java
- Redis Stream型別的使用Redis型別
- Spring Data Redis Stream的使用SpringRedis
- Redis5.0版本的12項新特性Redis
- 13. 尚矽谷_Java8新特性_Stream API 練習JavaAPI
- Redis5 壓力測試結果反饋報告Redis
- JDK 8 新特性之函數語言程式設計 → Stream APIJDK函數程式設計API
- Redis 6.0 新特性-多執行緒連環13問!Redis執行緒
- 【Java 8 新特性】Java Stream 通過skip()方法跳過前N個子元素Java
- GeminiDB新特性:讓Redis廣告頻控愛不釋手的exHASHRedis
- Redis高階特性Redis
- 【Java8新特性】關於Java8的Stream API,看這一篇就夠了!!JavaAPI
- 新特性
- Swift 4.1 的新特性Swift