*Redis TDIGEST.MAX 命令
TDIGEST.MAX 返回 t-digest 数据结构中最大观测值。
*语法
TDIGEST.MAX key
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | t-digest 键名 |
*返回值
- Double:最大观测值(字符串形式返回)
- +inf:空 t-digest 时返回正无穷
- Error:key 不存在或类型错误
*时间复杂度
O(1)
*
*示例
*基本用法
> TDIGEST.CREATE temp
OK
> TDIGEST.ADD temp 10 20 30 40 50
OK
> TDIGEST.MAX temp
"50"
*空 t-digest
> TDIGEST.CREATE empty
OK
> TDIGEST.MAX empty
"inf"
*浮点数
> TDIGEST.CREATE scores
OK
> TDIGEST.ADD scores 1.5 2.3 3.7 4.1
OK
> TDIGEST.MAX scores
"4.1"
*常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| ERR wrong number of arguments | 未提供 key | 提供一个 key |
| ERR key does not exist | key 不存在 | 确认 key 已创建并添加数据 |
| WRONGTYPE | key 不是 t-digest | 检查 key 的数据类型 |
*最佳实践
- 监控异常值:MAX 可用于发现异常大的观测值(如极端延迟)
- 结合 MIN 使用:MAX 和 MIN 可快速获取数据范围(range = MAX - MIN)
- 注意空结构:空 t-digest 返回 +inf,业务代码需做特殊处理
- 精度说明:MAX 返回的是精确的最大值(不是近似),因为是直接记录的实际观测值
*FAQ
Q1: MAX 返回的是近似值吗? A: 不是。MAX 返回的是精确的最大观测值,不是 t-digest 的近似估计。
Q2: 空 t-digest 返回什么?
A: 返回 "inf"(正无穷),表示无数据。
Q3: 如果只有一个值,MAX 和 MIN 相同吗? A: 是的。只有一个观测值时,MAX 和 MIN 都返回该值。