RedisBloom 2.4 发行说明
添加了 t-digest - 一种概率数据结构,用于根据数据流或浮点值的大型数据集估计分位数。
Redis 堆栈 |
---|
要求
RedisBloom v2.4.14 需要:
- 最低 Redis 兼容版本(数据库):6.0.16
- 最低 Redis 企业软件版本(集群):6.2.8
v2.4.14(2025 年 2 月)
这是 RedisBloom 2.4 的维护版本。
更新紧急度:MODERATE
:对服务器进行升级编程,但这不是紧急的。
详:
v2.4.13(2025 年 1 月)
这是 RedisBloom 2.4 的维护版本。
更新紧急度:SECURITY
:此版本中有安全修复程序。
详:
-
安全和隐私:
- #845 (CVE-2024-53993) CMS:潜在越界写入 (MOD-6970)
-
错误修复:
- #845
CMS.MERGE
在键数为负数时崩溃或挂起 (MOD-6964)
- #845
-
改进:
- #831添加了对 Ubuntu 22 以及 macOS 13 和 14 的支持
v2.4.9(2024 年 3 月)
这是 RedisBloom 2.4 的维护版本。
更新紧急度:MODERATE
:对服务器进行升级编程,但这不是紧急的。
详:
-
错误修复:
- 排名 #753可能崩溃
CMS.MERGE
使用无效参数时
- 排名 #753可能崩溃
v2.4.8(2024 年 1 月)
这是 RedisBloom 2.4 的维护版本。
更新紧急度:HIGH
:存在可能影响一部分用户的严重错误。升级!
详:
-
错误修复:
- 排名 #727针对 上潜在崩溃的其他修复
CF.LOADCHUNK
(型号-6344)
- 排名 #727针对 上潜在崩溃的其他修复
v2.4.7(2024 年 1 月)
这是 RedisBloom 2.4 的维护版本。
更新紧急度:HIGH
:存在可能影响一部分用户的严重错误。升级!
详:
v2.4.6(2023 年 12 月)
这是 RedisBloom 2.4 的维护版本。
更新紧急度:LOW
:除非有您想要使用的新功能,否则无需升级。
详:
-
错误修复:
- 排名 #707Top-K:
TOPK.ADD
和TOPK.QUERY
当项目名称为空字符串时崩溃 (RED-114676)
- 排名 #707Top-K:
-
改进:
- 排名 #706添加了对 CBL-Mariner 2 (MOD-6200) 的支持
v2.4.5(2023 年 4 月)
这是 RedisBloom 2.4 的维护版本。
更新紧急度:LOW
:除非有您想要使用的新功能,否则无需升级。
详:
-
改进:
- 支持未来 Redis Enterprise 版本的内部更改
v2.4.4(2023 年 2 月)
这是 RedisBloom 2.4 的维护版本。
更新紧急度:MODERATE
:对服务器进行升级编程,但这不是紧急的。
详:
v2.4 GA (v2.4.3)(2022 年 11 月)
这是 RedisBloom 2.4 的正式发布版本。
突出
RedisBloom 2.4 引入了一种新的 sketch 数据结构:t-digest。
2.4 中的新增功能
T-Digest 是一种概率数据结构,用于根据数据流或浮点值的大型数据集来估计分位数。它可用于回答以下问题:
- 数据流中有多少部分值小于给定值?
- 数据流中有多少个值小于给定值?
- 哪个值小于数据流中值的 p 百分比?(什么是 P 百分位数值)?
- p1 百分位值和 p2 百分位值之间的平均值是多少?
- 数据流中第 n 个最小值/最大值的值是多少?([反向] 秩 n 的值是多少)?
与任何其他概率数据结构一样,t-digest 需要次线性空间,并且具有可控的空间精度权衡。
使用 t-digest 非常简单明了:
-
创建草图并添加观测值
TDIGEST.CREATE key [COMPRESSION compression]
初始化新的 T-Digest 草图(如果密钥已存在,则初始化 Errors)。这COMPRESSION
参数用于指定准确性和内存消耗之间的权衡。默认值为 100。值越高,精度越高。TDIGEST.ADD key value...
将新观测值(浮点值)添加到草图中。您可以重复调用 TDIGEST。每当有新的观测值可用时,就添加。 -
按值估计分数或排名
用
TDIGEST.CDF key value...
对于每个输入值,检索 (小于给定值的观测值 + 等于给定值的观测值的一半) 的分数估计值。TDIGEST.RANK key value...
类似于 TDIGEST。CDF,但用于估计观测值的数量,而不是观测值的分数。更准确地说,对于每个输入值,它返回 (小于给定值的观测值 + 等于给定值的一半观测值) 的估计值。最后,
TDIGEST.REVRANK key value...
类似于 TDIGEST。RANK,但对于每个输入值,返回 (大于给定值的观测值 + 等于给定值的一半观测值) 的估计值。 -
按分数或秩估计值
TDIGEST.QUANTILE key fraction...
对于每个输入分数,返回小于给定观测值分数的值(浮点)的估计值。TDIGEST.BYRANK key rank...
对于每个输入排名,返回具有该排名的值 (浮点) 的估计值。TDIGEST.BYREVRANK key rank...
对于每个输入的反向排名,返回具有该反向排名的值 (浮点) 的估计值。 -
估计截尾均值
用
TDIGEST.TRIMMED_MEAN key lowFraction highFraction
检索指定分数之间平均值的估计值。这对于计算忽略异常值的平均值特别有用。例如,计算第 20 个百分位数和第 80 个百分位数之间的平均值。
-
合并 sketch
有时,合并草图很有用。例如,假设我们测量 3 台服务器的延迟,并且我们想要计算所有服务器组合的 90%、95% 和 99% 延迟。
TDIGEST.MERGE destKey numKeys sourceKey... [COMPRESSION compression] [OVERRIDE]
将多个草图合并为一个草图。如果
destKey
不存在,则会创建一个新草图。如果
destKey
是现有草图,则其值将与源键的值合并。要覆盖目标键内容,请使用OVERRIDE
. -
检索草图信息
用
TDIGEST.MIN
key 和TDIGEST.MAX key
以分别检索草图中的最小值和最大值。当 Sketch 为空时,两者都返回 NaN (Not a Number)。
这两个命令都返回准确的结果,并且等效于
TDIGEST.BYRANK key 0
和TDIGEST.BYREVRANK key 0
分别。用
TDIGEST.INFO key
以检索有关草图的一些附加信息。 -
重置草图
TDIGEST.RESET key
清空草图并重新初始化它。