Stream
- Redis 5.0開始支援Stream格式的服務,使用上像List的方式並類似kafak pubsub的特性
Stream Group
- Stream提供群組讀取資料服務,可用於分散式系統發布訂閱用
- XGROP:XGROUP CREATE {RedisKey} {GroupName}
- {RedisKey}:Stream寫入的key值
- {GroupName}:Stream群組名稱
寫入Stream
- XADD:XADD {RedisKey} {Position} {Field} {Value}……
- {RedisKey}:Stream寫入的key值
- {Position}:{TimeStamp}-{SerialNumber}組裝方式,若不添加則以系統預設帶入
- {TimeStamp}:當下時間戳記
- {SerialNumber}:同個時間戳記流水號,若為*則代表由redis決定,但不能小於最後寫入的時間戳記
- 新增的資料時間戳記不得小於最後一筆輸入的時間戳記
- {Field} {Value}…:寫入的資料欄位的內容,若有多筆則重複添加在後方
讀取Stream
XREAD:XREAD COUNT {Count} STREAMS {RedisKey} {StartPosition}
- {RedisKey}:Stream寫入的key值
- {Count}:讀取筆數
- {StartPosition}:{TimeStamp}-{SerialNumber}組裝方式,若不添加則以系統預設帶入
- {TimeStamp}:當下時間戳記
- {SerialNumber}:同個時間戳記流水號,若為*則代表由redis決定,但不能小於最後寫入的時間戳記
XRANGE:XRANGE {RedisKey} {StartPosition} {EndPosition} COUNT {Count}
- {RedisKey}:Stream寫入的key值
- {Count}:讀取筆數
- {StartPosition}:{TimeStamp}-{SerialNumber}組裝方式,若不添加則以系統預設帶入
- {TimeStamp}:當下時間戳記
- {SerialNumber}:同個時間戳記流水號,若為*則代表由redis決定,但不能小於最後輸入的時間戳記
- -:”-“Stream存在最小戳記
- {EndPosition}:{TimeStamp}-{SerialNumber}組裝方式,若不添加則以系統預設帶入
- {TimeStamp}:當下時間戳記
- {SerialNumber}:同個時間戳記流水號,若為*則代表由redis決定,但不能小於最後寫入的時間戳記
- +:”+”Stream存在最大戳記
XREVRANGE:XRANGE的倒序
XREADGROUP:XREADGROUP GROUP {GroupName} {ConsumerName} COUNT {Count} STREAMS {RedisKey}
- {RedisKey}:Stream寫入的key值
- {GroupName}:Stream群組名稱
- {ConsumerName}:消費者名稱
- {Count}:該群組名稱下最新一筆讀取筆數