Redis Streams
用語
ストリーム
追記専用のログデータ構造
エントリ
ストリーム内のフィールドと値の組
エントリID
エントリの識別子
<ミリ秒>-<連番>の形式の値
コンシューマグループ
コマンド
ストリームに新しいエントリを追加します
XADD <key> <entry-id> [<field> <value>...]
<entry-id>に*を指定すると、サーバ側で自動生成されます
code:javascript
await redis.xadd(messages, '*', 'body', 'Hello, world!')
ストリームのアイテム数を取得できます
XRANGE
ストリームから指定した範囲内のIDを持つエントリを返却します
XRANGE <key> <start> <end>
<start>に-, <end>に+を指定すると、ストリーム内の全エントリを取得できます
code:javascript
await redis.xrange('messages', '-', '+')
XREAD
ストリームに新しいアイテムが追加されるのを監視します
Pub/SubやBLPOPなどとの違い
ストリームは複数のコンシューマを持つことができます
BLPOPなどと異なり、新規アイテムは全コンシューマに配送されます
コンシューマに配送されたアイテムは削除されない限りストリーム内に残り続けます
コンシューマグループ