XCFGSET

设置流的 IDMP 配置参数。

语法

XCFGSET key [IDMP-DURATION idmp-duration] [IDMP-MAXSIZE idmp-maxsize]

引入版本:8.6.0

复杂度摘要:O(1)

设置流的 IDMP(幂等消息处理)配置参数。此命令配置幂等 ID 的保留时间以及每个生产者跟踪的幂等 ID 的最大数量。

有关更多详细信息,请参阅幂等消息处理。

必需参数

key

流键的名称。该流必须已经存在。

可选参数

IDMP-DURATION idmp-duration

设置每个幂等 ID (iid) 在流的 IDMP 映射中保留的持续时间(以秒为单位)。有效范围:1-86,400 秒。默认值:100 秒。

当幂等ID过期时,它可以被新消息重用。这提供了操作保证,即 Redis 在持续时间过去之前不会忘记幂等性 ID(除非达到容量)。

IDMP-MAXSIZE idmp-maxsize

设置流的 IDMP 映射中为每个生产者保留的最新幂等 ID 的最大数量。有效范围:1-10,000 个条目。默认值:100 个条目。

当达到容量时,无论剩余持续时间如何,该生产者最旧的幂等 ID 都会被逐出。这可以防止内存无限增长。

详细说明

行为

  • 调用 XCFGSET 会清除流的所有现有生产者 IDMP 映射。
  • 必须至少指定IDMP-DURATION 或IDMP-MAXSIZE 之一。
  • 调用此命令之前流必须存在。
  • 配置更改立即应用于所有未来的 IDMP 操作。

错误情况

该命令在以下情况下返回错误:

  • WRONGTYPE:键存在但不是流。
  • ERR no such key:流不存在。
  • ERR syntax error:命令语法无效或缺少必需参数。
  • ERR invalid duration:持续时间值超出有效范围 (1-86,400)。
  • ERR invalid maxsize:Maxsize 值超出有效范围 (1-10,000)。

示例

XADD mystream * field value
XCFGSET mystream IDMP-DURATION 300
XCFGSET mystream IDMP-MAXSIZE 1000
XCFGSET mystream IDMP-DURATION 600 IDMP-MAXSIZE 500

Redis Software 与 Redis Cloud 兼容性

Redis
软件
Redis
Cloud
说明
✅ 标准
✅ 主动-主动
✅ 标准
✅ 主动-主动

返回值

RESP2

简单字符串回复:如果配置成功则为OK。

RESP3

简单字符串回复:如果配置成功则为OK。

资料来源:Redis 官方 XCFGSET 文档;中文内容参考 Redis 文档许可。