XADD

语法
XADD key [NOMKSTREAM] [<MAXLEN | MINID> [= | ~] threshold
  [LIMIT count]] <* | id> field value [field value ...]
从以下位置开始可用:
5.0.0
时间复杂度:
添加新条目时为 O(1),修剪时为 O(N),其中 N 是逐出的条目数。
ACL 类别:
@write, @stream, @fast,

将指定的 stream entry 附加到 stream 的指定 key 处。 如果该密钥不存在,则作为运行此命令的副作用, key 是使用 stream 值创建的。stream 的 key 的创建可以是 disabled 替换为NOMKSTREAM选择。

条目由字段-值对列表组成。 字段-值对的存储顺序与用户指定的顺序相同。 读取流的命令(例如XRANGEXREAD保证按照字段和值的添加顺序返回字段和值XADD.

XADD是唯一可以向流中添加数据的 Redis 命令,但 还有其他命令,例如XDELXTRIM,它们能够 从流中删除数据。

将 Stream ID 指定为参数

流条目 ID 标识流中的给定条目。

XADD命令将为您自动生成一个唯一的 ID,如果 ID 参数 specified 是字符(星号 ASCII 字符)。然而,虽然 仅在极少数情况下有用,则可以指定格式正确的 ID,因此 新条目将完全使用指定的 ID 添加。*

ID 由两个数字指定,用字符分隔:-

1526919030474-55

这两个量都是 64 位数字。自动生成 ID 时, 第一部分是 Redis 实例生成的 Unix 时间(以毫秒为单位) ID 的 ID 中。第二部分只是一个序列号,用于 区分同一毫秒内生成的 ID。

您还可以指定一个不完整的 ID,该 ID 仅包含毫秒部分,该部分被解释为序列部分的零值。 要仅自动生成序列部分,请指定毫秒部分,后跟分隔符和字符:-*

> XADD mystream 1526919030474-55 message "Hello,"
"1526919030474-55"
> XADD mystream 1526919030474-* message " World!"
"1526919030474-56"

ID 保证始终是递增的:如果您比较 条目将大于任何其他过去的 ID,因此条目 完全在 Stream 中排序。为了保证此属性, 如果流中当前 top ID 的时间大于当前 local time 时,则以 top entry time 代替,而 ID 的序列部分递增。例如,当 本地时钟向后跳转,或者如果在故障转移后,新的 Master 具有 一个不同的绝对时间。

当用户将显式 ID 指定给XADD,则最小有效 ID 为0-1,并且用户必须指定一个大于任何其他 ID 的 ID ID 当前在流中,否则命令将失败并返回错误。通常 只有当您有另一个系统生成 唯一 ID(例如 SQL 表),并且您确实需要 Redis 流 ID 来匹配另一个系统的 ID。

上限流

XADD包含与XTRIMcommand - 有关更多信息,请参阅其文档页面。 这允许添加新条目并通过对XADD,有效地使用任意阈值对流进行限制。 尽管精确修剪是可能的并且是默认设置,但由于流的内部表示,添加入口并使用XADD使用几乎精确的修剪 (参数)。~

例如,调用XADD采用以下形式:

XADD mystream MAXLEN ~ 1000 * ... entry fields here ...

将添加新条目,但也将驱逐旧条目,以便流仅包含 1000 个条目,或者最多包含几十个条目。

有关流的其他信息

有关 Redis 流的更多信息,请查看我们的 Redis 流简介文档

例子

XADD mystream * 姓名 Sara 姓氏 OConnor XADD mystream * 字段 1 值 字段 2 值 2 字段 3 值 3 XLEN 我的流 XRANGE mystream - +

RESP2 回复

以下选项之一:

  • 批量字符串回复:添加的条目的 ID。如果星号 () 作为 id 参数传递,则 ID 是自动生成的 ID,否则命令只会返回用户在插入期间指定的相同 ID。*
  • Nil 回复:如果给出了 NOMKSTREAM 选项并且密钥不存在。

RESP3 回复

以下选项之一:

  • 批量字符串回复:添加的条目的 ID。如果星号 () 作为 id 参数传递,则 ID 是自动生成的 ID,否则命令只会返回用户在插入期间指定的相同 ID。*
  • 空回复:如果给出了 NOMKSTREAM 选项并且密钥不存在。

历史

  • 从 Redis 版本 6.2.0 开始:添加了NOMKSTREAM选择MINIDtrimming 策略和LIMIT选择。
  • 从 Redis 版本 7.0.0 开始:添加了对<ms>-*显式 ID 表单。
为本页评分
返回顶部 ↑