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 文档许可。