*Redis TDIGEST.RESET 命令
TDIGEST.RESET 清空指定 t-digest 数据结构中的所有观测值,保留键和配置。
*语法
TDIGEST.RESET key
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | t-digest 键名 |
*返回值
- OK:重置成功
- Error:key 不存在或类型错误
*时间复杂度
O(1)
*
*示例
*基本用法
> TDIGEST.CREATE temp
OK
> TDIGEST.ADD temp 10 20 30 40 50
OK
> TDIGEST.INFO temp
...
13) "Observations"
14) (integer) 5
> TDIGEST.RESET temp
OK
> TDIGEST.INFO temp
13) "Observations"
14) (integer) 0
> TDIGEST.MIN temp
"-inf"
*重置后继续添加数据
> TDIGEST.CREATE metrics
OK
> TDIGEST.ADD metrics 1 2 3
OK
> TDIGEST.RESET metrics
OK
> TDIGEST.ADD metrics 4 5 6
OK
> TDIGEST.MAX metrics
"6"
*常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| ERR wrong number of arguments | 未提供 key | 提供一个 key |
| ERR key does not exist | key 不存在 | 确认 key 已创建 |
| WRONGTYPE | key 不是 t-digest | 检查 key 的数据类型 |
*最佳实践
- 滑动窗口统计:RESET 后重新收集数据,实现固定窗口的统计分析
- 比 DEL + CREATE 更高效:RESET 保留内部结构,避免重新分配内存
- 周期性重置:监控场景下可按小时/天 RESET,实现分时段统计
- 配合定时任务:结合 Redis 的 EXPIRE 或外部调度实现自动窗口切换
*FAQ
Q1: RESET 和 DEL 有什么区别? A: RESET 清空数据但保留 key 和内部结构配置;DEL 完全删除 key,之后需要重新 CREATE。
Q2: RESET 后压缩因子会改变吗? A: 不会。RESET 只清空观测数据,压缩因子、容量等配置保持不变。
Q3: RESET 后 INFO 显示什么? A: Observations、Merged nodes、Unmerged nodes 等数据相关字段变为 0,但 Capacity 和 Compression 保持不变。