关于redis:Redis的底层类型之stream

45次阅读

共计 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)流的大小,以限度流中音讯的数量。这能够帮忙您控制流的存储大小,以避免其有限增长。

正文完
 0