共计 1927 个字符,预计需要花费 5 分钟才能阅读完成。
stream
Redis Stream 次要用于音讯队列(MQ,Message Queue),Redis 自身是有一个 Redis 公布订阅 (pub/sub) 来实现音讯队列的性能,但它有个毛病就是音讯无奈长久化,如果呈现网络断开、Redis 宕机等,音讯就会被抛弃。
简略来说公布订阅 (pub/sub) 能够散发音讯,但无奈记录历史音讯。
而 Redis Stream 提供了音讯的长久化和主备复制性能,能够让任何客户端拜访任何时刻的数据,并且能记住每一个客户端的拜访地位,还能保障音讯不失落。
- XADD
XADD key [NOMKSTREAM] [<MAXLEN | MINID> [= | ~] count] <* | id> field value [field value ...]
如果 mystream 不存在,NOMKSTREAM 选项将阻止主动创立新的 Stream
count: 是阈值,限度音讯的数量
<stream>:指定要增加条目标流的名称。
MAXLEN [~|=] <count>:(可选)用于限度流的长度。~ 示意不包含最新的条目,| 示意包含最新的条目,<count> 指定要保留的最大条目数量。例如,MAXLEN ~ 100 示意保留最新的 100 个条目,MAXLEN | 100 示意保留最新的 101 个条目(包含最新的一个)。
ID <id>:(可选)指定新条目标 ID。如果省略,Redis 会主动生成一个惟一的 ID。
<field> <value>:指定要增加到条目标字段和值。
- XGROUP
XGROUP 是 Redis 中用于治理 Stream 消费者组的命令。它容许您创立、治理和配置 Stream 消费者组,以便多个消费者可能合作解决 Stream 中的音讯。
XGROUP CREATE key group <id | $> [MKSTREAM]
[ENTRIESREAD entries-read]
<stream>:指定要创立消费者组的 Stream 的名称。
<groupname>:指定消费者组的名称。
<id-or-$>:指定从 Stream 的哪个地位开始生产音讯。能够是特定的音讯 ID,也能够是 $,示意从 Stream 的最新消息开始生产。
[MKSTREAM]:可选参数,如果指定,将创立一个新的 Stream,如果该 Stream 不存在。
- XGROUP CREATECONSUMER
- XGROUP DELCONSUMER
- XGROUP DESTROY
- XGROUP SETID
创立一个消费者
XGROUP CREATECONSUMER key group consumer
- XACK
XACK 是 Redis Streams 中的命令,用于从消费者组中确认接管并解决音讯。在消费者组中,多个消费者能够合作解决 Stream 中的音讯,但为了确保音讯不会被屡次解决,每个音讯都须要由某个消费者进行确认(ACK)。XACK 命令用于执行此确认操作。
- XAUTOCLAIM
主动获取并解决音讯。它通常用于消费者组,以主动从 Stream 中获取音讯并将其调配给不同的消费者以解决。这个命令转移所有合乎指定条件的待处理流条目标所有权。从概念上讲,XAUTOCLAIM 相当于先调用 XPENDING,而后再调用 XCLAIM,但它通过相似 SCAN 的语义提供了一种更直观的形式来解决消息传递失败。
- XPENDING
查问无关消费者组(Consumer Group)中未解决音讯的信息,以及无关每个消费者的生产进度的信息。
- XCLAIM
将未确认(pending)的音讯重新分配给指定的消费者。当一个消费者无奈解决一条音讯时,该音讯会变为未确认状态,而后能够应用 XCLAIM 命令将它调配给另一个消费者。
- XINFO CONSUMERS
- XINFO GROUPS
- XINFO STREAM
- XLEN
- XREADGROUP
- XREAD
XREAD:用于读取音讯。XREAD 命令用于从一个或多个流中读取音讯。它能够用于实时地获取音讯并进行解决。
您能够设置阻塞工夫(BLOCK)来期待新音讯达到,或者指定要返回的音讯数量(COUNT)。
实用于消费者须要获取音讯内容的状况。
XPENDING:用于治理挂起的音讯(Pending Messages)。
XPENDING 命令用于查看挂起的音讯的信息,如待处理音讯的数量、最早和最新的音讯 ID、以及消费者的相干信息。
这个命令通常用于监控和治理待处理的音讯,以确保音讯在消费者之间失去正确处理。
实用于监控和治理挂起的音讯。
总之,XREAD 用于读取音讯内容,而 XPENDING 用于查看和治理待处理音讯的信息。这两个命令在不同的情境下有不同的用处,通常用于实现流式数据处理系统中的不同性能。
- XTRIM
XTRIM 是 Redis Streams 中的命令,用于修剪(Trim)流的大小,以限度流中音讯的数量。这能够帮忙您控制流的存储大小,以避免其有限增长。