Redis Stack 7.2 发布说明
Redis Stack 7.2 发布说明。
Redis Stack 7.2.0-v13 (2024年10月)
这是Redis Stack Server 7.2.0的维护版本。
更新紧急程度:SECURITY
:此版本中包含安全修复。
标题:
此版本包括对Redis服务器的安全修复,解决了使用Lua库组件时可能存在的远程代码执行(RCE)漏洞,以及由于格式错误的ACL选择器或无限制的模式匹配导致的拒绝服务(DoS)风险。 此外,此维护版本包含一个错误修复,以防止在集群模式下崩溃,并包含最新版本的Redis Insight。
详情:
安全与隐私
- Redis:
- (CVE-2024-31449) Lua库命令可能导致栈溢出和潜在的远程代码执行。
- (CVE-2024-31227) 由于格式错误的ACL选择器可能导致拒绝服务。
- (CVE-2024-31228) 由于无限制的模式匹配可能导致拒绝服务。
错误修复
-
Redis:
- [#13315](https://github.com/redis/redis/pull/13315) 修复了集群模式下的崩溃问题
-
Redis 版本:
模块版本
推荐的客户端库
- Java
- Python
- NodeJS
- .NET
- Go
兼容Redis Insight。此版本的docker镜像redis/redis-stack捆绑了Redis Insight 2.58。
注意:版本号遵循以下模式:
x.y.z-b
x.y
Redis 主版本z
随着模块 x.y 版本的增加而增加,且为偶数。b
表示 Redis 或模块的补丁(Redis 模块的任何z
)。b
将由v
+ 数值组成。
Redis Stack 7.2.0-v12 (2024年8月)
这是Redis Stack Server 7.2.0的维护版本。
更新紧急程度:HIGH
:存在一个可能影响部分用户的关键错误。请升级!
标题:
更新的搜索和查询版本引入了几个新功能和重要的错误修复,包括一个关键修复。Redis Stack 7.2.0的新版本还包括JSON和时间序列数据结构的更新版本,每个版本都包含多个错误修复。
此维护版本还包含最新版本的RedisInsight。
详情:
改进
- 搜索和查询:
- [#4792](https://github.com/RediSearch/RediSearch/pull/4792) - 向简单字符串回复添加字符验证并在需要时进行转义 (MOD-7258)
- [#4768](https://github.com/RediSearch/RediSearch/pull/4768) - 在聚合管道的错误消息中指示缺少的值 (MOD-7201)
- [#4745](https://github.com/RediSearch/RediSearch/pull/4745) -
GROUPBY
递归清理 (MOD-7245) - [#4823](https://github.com/RediSearch/RediSearch/pull/4823) - 在查询执行期间清除中间结果的键过期机制
错误修复
-
搜索和查询:
- [#4754](https://github.com/RediSearch/RediSearch/pull/4754) - 在使用
MAX
reducer时正确返回负值的最大值 (MOD-7252) - [#4737](https://github.com/RediSearch/RediSearch/pull/4737) - 在转义反斜杠
\
后忽略分隔符,例如在hello\\,world
中忽略,
(MOD-7240) - [#4717](https://github.com/RediSearch/RediSearch/pull/4717) - 按多个字段排序
SORTBY 2 @field1 @field2
时忽略了后续字段 (MOD-7206) - [#4803](https://github.com/RediSearch/RediSearch/pull/4803) - 查询期间键过期返回空数组 (MOD-7010)
- [#4794](https://github.com/RediSearch/RediSearch/pull/4794) - 索引清理器(GC)尝试清理已删除的数字索引可能导致崩溃 (MOD-7303)
- [#4754](https://github.com/RediSearch/RediSearch/pull/4754) - 在使用
-
JSON:
- [#1212](https://github.com/RedisJSON/RedisJSON/pull/1212)
JSON.MSET
- AOF 命令被多次重复 (MOD-7293)
- [#1212](https://github.com/RedisJSON/RedisJSON/pull/1212)
-
时间序列:
- [#1607](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/1607) 删除并重新创建压缩规则的源键后可能崩溃 (MOD-7338)
- [#1610](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/1610)
COUNT
参数接受非正值 (MOD-5413)
-
Redis 版本:
模块版本
推荐的客户端库
- Java
- Python
- NodeJS
- .NET
- Go
兼容Redis Insight。此版本的docker镜像redis/redis-stack捆绑了Redis Insight 2.54。
注意:版本号遵循以下模式:
x.y.z-b
x.y
Redis 主版本z
随着模块 x.y 版本的增加而增加,且为偶数。b
表示对 Redis 或模块的补丁(Redis 或模块的任何z
)。b
将由v
+ 数值组成。
Redis Stack 7.2.0-v11 (2024年6月)
这是Redis Stack Server 7.2.0的维护版本。
更新紧急程度:MODERATE
:计划进行服务器升级,但并不紧急。
标题:
Redis Stack 7.2.0-v11 引入了一个新版本的 Redis 服务器,修复了多个错误,并更新了 搜索和查询 功能,带来了许多增强和错误修复。
更新后的搜索和查询版本改进了内存报告,考虑了TAG
和TEXT
尝试所消耗的额外内存,并增强了倒排索引的内存计数。此外,当在集群中使用时,FT.INFO
命令还包括了额外的字段。
此维护版本还包含最新版本的RedisInsight。
详情:
改进
- 搜索和查询:
- [#4595](https://github.com/RediSearch/RediSearch/pull/4595) - 报告
TAG
和TEXT
尝试的内存 (MOD-5902) - [#4669](https://github.com/RediSearch/RediSearch/pull/4669) - 倒排索引内存计数 (MOD-5977,MOD-5866)
- [#4687](https://github.com/RediSearch/RediSearch/pull/4687) - 在集群中使用时添加缺失的
FT.INFO
字段 (MOD-6920)
- [#4595](https://github.com/RediSearch/RediSearch/pull/4595) - 报告
错误修复
-
Redis:
- [#12824](https://github.com/redis/redis/pull/12824) 单分片集群在CLUSTER SLOTS中保留失败的副本而不是移除它们
- [#12955](https://github.com/redis/redis/pull/12955) 在替换小项并超过4GB时,LSET命令崩溃
- [#13004](https://github.com/redis/redis/pull/13004) 由于重新处理命令,阻塞命令的超时被重置
- [#13115](https://github.com/redis/redis/pull/13115) Lua参数中的数字转换为redis参数可能失败。此错误在7.2.0版本中引入
-
CLI工具:
- [#13092](https://github.com/redis/redis/pull/13092) redis-cli: --count (用于 --scan, --bigkeys 等) 被忽略,除非同时使用了 --pattern
- [#12958](https://github.com/redis/redis/pull/12958) redis-check-aof: 错误地将清单格式的数据视为MP-AOF
-
搜索和查询:
- [#4614](https://github.com/RediSearch/RediSearch/pull/4614) - 当使用
FT.AGGREGATE
和APPLY 'split(...)'
时,分片变得无响应 (MOD-6759) - [#4556](https://github.com/RediSearch/RediSearch/pull/4556) -
FT.EXPLAIN
在使用通配符查询时返回额外的 } (MOD-6768) - [#4646](https://github.com/RediSearch/RediSearch/pull/4646) - 使用
DD
标志的FT.DROPINDEX
在一个 AA 集群中删除了键,但在其他集群中没有删除 (MOD-1855)
- [#4614](https://github.com/RediSearch/RediSearch/pull/4614) - 当使用
-
Redis 版本:
模块版本
推荐的客户端库
- Java
- Python
- NodeJS
- .NET
- Go
兼容Redis Insight。此版本的docker镜像redis/redis-stack捆绑了Redis Insight 2.50。
注意:版本号遵循以下模式:
x.y.z-b
x.y
Redis 主版本z
随着模块 x.y 版本的增加而增加,且为偶数。b
表示对 Redis 或模块的补丁(Redis 或模块的任何z
)。b
将由v
+ 数值组成。
Redis Stack 7.2.0-v10 (2024年4月)
这是Redis Stack Server 7.2.0的维护版本。
更新紧急程度:HIGH
:存在一个可能影响部分用户的关键错误。请升级!
标题:
此版本包含最新的搜索和查询功能,具有多项改进和错误修复,包括关键错误修复。此版本还包括最新的JSON数据结构,修复了潜在的崩溃问题,时间序列数据结构提供了更详细的LibMR错误消息,以及最新版本的触发器和函数,更新了v8版本并修复了一个错误。它还包含最新版本的RedisInsight。
详情:
改进
-
搜索和查询:
- [#4502](https://github.com/RediSearch/RediSearch/pull/4502) 在集群设置中尝试执行搜索命令时,作为
MULTI
/EXEC
或LUA脚本的一部分,正确处理错误 (MOD-6541) - [#4526](https://github.com/RediSearch/RediSearch/pull/4526) 在错误信息中添加详细的几何信息 (MOD-6701)
- [#4502](https://github.com/RediSearch/RediSearch/pull/4502) 在集群设置中尝试执行搜索命令时,作为
-
时间序列:
- [#1593](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/1593) 更详细的LibMR错误信息
-
触发器和函数:
- [#1100](https://github.com/RedisGears/RedisGears/pull/1100) 更新 v8 版本至 12.3.219.15
错误修复
-
搜索和查询:
- [#4481](https://github.com/RediSearch/RediSearch/pull/4481) 在
GEOSHAPE
上的查询语法只接受前缀而不是完整的谓词 (MOD-6663) - [#4513](https://github.com/RediSearch/RediSearch/pull/4513) 在数字查询中使用
FT.CURSOR READ
导致崩溃 (MOD-6597) [严重错误] - [#4534](https://github.com/RediSearch/RediSearch/pull/4534) 使用错误参数的
FT.PROFILE
可能导致集群设置崩溃 (MOD-6791) [严重错误] - [#4530](https://github.com/RediSearch/RediSearch/pull/4530) 一些参数设置仅使用前缀而不是完整值也能工作 (MOD-6709)
- [#4539](https://github.com/RediSearch/RediSearch/pull/4539) 在重新索引加载新的RDB时未释放内存可能导致崩溃 (MOD-6831, 6810) [严重错误]
- [#4498](https://github.com/RediSearch/RediSearch/pull/4498) 向量预过滤查询(混合查询)超时导致崩溃,由于尝试写入新文档时发生死锁 (MOD-6510, MOD-6244) [严重错误]
- [#4495](https://github.com/RediSearch/RediSearch/pull/4495) 如果使用已弃用的
FT.ADD
命令,FT.SEARCH
访问不存在的内存地址导致崩溃 (MOD-6599) [严重错误]
- [#4481](https://github.com/RediSearch/RediSearch/pull/4481) 在
-
JSON:
- [#1192](https://github.com/RedisJSON/RedisJSON/pull/1192) 当数值大于i64::MAX时崩溃 (MOD-6501, MOD-4551, MOD-4856, MOD-5714)
-
触发器和函数:
- [#1093](https://github.com/RedisGears/RedisGears/pull/1093) 记录NULL字符时崩溃
Redis 版本:
模块版本
推荐的客户端库
- Java
- Python
- NodeJS
- .NET
- Go
兼容RedisInsight。此版本的docker镜像redis/redis-stack捆绑了RedisInsight 2.46。
注意:版本号遵循以下模式:
x.y.z-b
x.y
Redis 主版本z
随着模块 x.y 版本的增加而增加,且为偶数。b
表示对 Redis 或模块的补丁(Redis 或模块的任何z
)。b
将由v
+ 数值组成。
下载
- macOS: x86_64, arm64
- AppImage: x86_64
- Ubuntu: Bionic x86_64, Bionic arm64, Focal x86_64, Focal arm64, Snap x86_64, Snap arm64, Jammy x86_64, Jammy arm64
- Debian: Bullseye x86_64
- RHEL 7/CentOS Linux 7: x86_64
- RHEL 8/CentOS Linux 8: x86_64
- RHEL 9/Rocky Linux 9/CentOS Linux 9: x86_64
- Redis Stack 在 Dockerhub 上:x86_64 和 arm64
- Redis Stack 服务器在 Dockerhub 上:x86_64 和 arm64
Redis Stack 7.2.0-v9 (2024年3月)
这是Redis Stack Server 7.2.0的维护版本。
更新紧急程度:MODERATE
:计划进行服务器升级,但并不紧急。
标题:
此版本包含最新的搜索和查询功能,改进了用于查询GEOSHAPE
类型的内存分配模式,并修复了几个错误。此版本还包括最新的概率数据结构,修复了潜在的崩溃问题,以及更新了v8版本的触发器和函数功能。它还包含了最新版本的RedisInsight。
详情:
改进
- 搜索和查询:
- [#4313](https://github.com/RediSearch/RediSearch/pull/4313) 用于查询
GEOSHAPE
类型的内存分配模式(MOD 6431)
- [#4313](https://github.com/RediSearch/RediSearch/pull/4313) 用于查询
错误修复
-
搜索和查询:
- [#4476](https://github.com/RediSearch/RediSearch/pull/4476) 在
FT.EXPLAIN
和FT.EXPLAINCLI
上拆分INFIX
和SUFFIX
报告 (MOD-6186) - [#4467](https://github.com/RediSearch/RediSearch/pull/4467) 在使用
WITHSUFFIXTRIE
索引的TAG
上进行后缀查询时发生内存泄漏 (MOD-6644) - [#4403](https://github.com/RediSearch/RediSearch/pull/4403) 当发现无效拓扑时,集群的
FT.SEARCH
会永远挂起而不回复 (MOD-6557) - [#4355](https://github.com/RediSearch/RediSearch/pull/4355) 搜索同义词时会在同一组中多次迭代,导致性能下降 (MOD-6490)
- [#4476](https://github.com/RediSearch/RediSearch/pull/4476) 在
-
概率数据结构:
- [#753](https://github.com/RedisBloom/RedisBloom/issues/753) 使用无效参数时,
CMS.MERGE
可能会崩溃
- [#753](https://github.com/RedisBloom/RedisBloom/issues/753) 使用无效参数时,
-
触发器和函数:
- [#1089](https://github.com/RedisGears/RedisGears/pull/1089) 更新 v8 版本至 12.2.281.21
-
Redis 版本:
模块版本
推荐的客户端库
- Java
- Python
- NodeJS
- .NET
- Go
兼容RedisInsight。此版本的docker镜像redis/redis-stack捆绑了RedisInsight 2.44。
注意:版本号遵循以下模式:
x.y.z-b
x.y
Redis 主版本z
随着模块 x.y 版本的增加而增加,且为偶数。b
表示对 Redis 或模块的补丁(Redis 或模块的任何z
)。b
将由v
+ 数值组成。
Redis Stack 7.2.0-v8 (2024年1月)
这是Redis Stack Server 7.2.0的维护版本。
更新紧急程度:HIGH
:概率数据结构中修复了一个可能影响部分用户的关键错误。请升级!
标题:
此版本包含最新的概率数据结构,并修复了一个关键错误,以及最新的JSON数据结构,其中有一个重大更改,将JSONPath的默认路径值从$
恢复为.
(在RESP3下),并修复了RediSearch的死锁问题。此版本还包含最新版本的RedisInsight。
详情:
改进
- JSON:
- [#1131](https://github.com/RedisJSON/RedisJSON/issues/1131), [#1143](https://github.com/RedisJSON/RedisJSON/pull/1143) 重大变更 - 在RESP3下将JSONPath的默认路径值从
$
恢复为.
(MOD-6156)
- [#1131](https://github.com/RedisJSON/RedisJSON/issues/1131), [#1143](https://github.com/RedisJSON/RedisJSON/pull/1143) 重大变更 - 在RESP3下将JSONPath的默认路径值从
错误修复
-
JSON:
- [#1095](https://github.com/RedisJSON/RedisJSON/pull/1095) 修复了RediSearch死锁问题。请参阅RediSearch 2.8.10发布说明 (MOD-5895)
-
概率数据结构:
- [#727](https://github.com/RedisBloom/RedisBloom/pull/727) 在 CF.LOADCHUNK 上可能崩溃 (MOD-6344) - 额外修复
-
Redis 版本:
模块版本
推荐的客户端库
- Java
- Python
- NodeJS
- .NET
- Go
兼容RedisInsight。此版本的docker镜像redis/redis-stack捆绑了RedisInsight 2.40。
注意:版本号遵循以下模式:
x.y.z-b
x.y
Redis 主版本z
随着模块 x.y 版本的增加而增加,且为偶数。b
表示对 Redis 或模块的补丁(Redis 或模块的任何z
)。b
将由v
+ 数值组成。
Redis Stack 7.2.0-v7 (2024年1月)
这是Redis Stack Server 7.2.0的维护版本。
更新紧急程度:SECURITY
:此版本中包含安全修复。
标题:
此版本包含针对Redis服务器的安全修复,以正确处理内存缓冲区的调整大小,以及针对概率数据结构的安全修复,以避免潜在的崩溃。新的Redis Stack版本还包含对搜索和查询功能的几项改进和错误修复,包括关键错误的修复。它还提供了最新的时间序列数据结构,最新的触发器和函数功能,并包含各种改进和错误修复,以及最新版本的RedisInsight。
详情:
安全与隐私
-
Redis:
- (CVE-2023-41056) 在某些情况下,Redis 可能错误地处理内存缓冲区的调整大小,这可能导致缓冲区大小的错误计算,并导致堆溢出和潜在的远程代码执行
-
概率数据结构:
- [#721](https://github.com/RedisBloom/RedisBloom/issues/721) 在
CF.RESERVE
上可能崩溃 (MOD-6343) - [#722](https://github.com/RedisBloom/RedisBloom/issues/722) 在
CF.LOADCHUNK
上可能崩溃 (MOD-6344)
- [#721](https://github.com/RedisBloom/RedisBloom/issues/721) 在
改进
-
搜索和查询:
- [#3682](https://github.com/RediSearch/RediSearch/pull/3682) 在
FT.INFO
上报告最后一个键错误和字段类型索引失败 (MOD-5364) - [#4236](https://github.com/RediSearch/RediSearch/pull/4236) 在
FT.INFO
报告中添加向量索引参数 (MOD-6198) - [#4196](https://github.com/RediSearch/RediSearch/pull/4196) 在集群设置中的
FT.SEARCH
结果处理后检查超时 (MOD-6278) - [#4164](https://github.com/RediSearch/RediSearch/pull/4164) 在RESP3回复中报告
TIMEOUT
、MAXPREFIXEXPANSION
警告 (MOD-6234) - [#4165](https://github.com/RediSearch/RediSearch/pull/4165) 在
FT.PROFILE
报告中指示超时 (MOD-6184) - [#4149](https://github.com/RediSearch/RediSearch/pull/4149) 在
FAIL
超时策略下从游标指示超时 (MOD-5990) - [#4147](https://github.com/RediSearch/RediSearch/pull/4147) 初始化最大数值范围,导致索引叶子分裂的更好平衡 (MOD-6232)
- [#3940](https://github.com/RediSearch/RediSearch/pull/3940) 当谓词包含多个
INTERSECTION
(AND)或UNION
(OR)时的查询优化 (MOD-5910) - [#4059](https://github.com/RediSearch/RediSearch/pull/4059) 当策略为
ON_TIMEOUT RETURN
时,返回游标ID (MOD-5966) - [#4006](https://github.com/RediSearch/RediSearch/pull/4006) 可能有问题索引名称别名验证 (MOD-5945)
- [#4264](https://github.com/RediSearch/RediSearch/pull/4264)
FT.PROFILE
上时间报告计数器的粒度 (MOD-6002)
- [#3682](https://github.com/RediSearch/RediSearch/pull/3682) 在
-
触发器和函数:
- 将v8版本更新至12.0/267.13
错误修复
-
Redis:
- [#12805](https://github.com/redis/redis/pull/12805), [#12832](https://github.com/redis/redis/pull/12832) 修复了在混合使用7.0和7.2版本的集群命令时导致的崩溃问题
- [#12564](https://github.com/redis/redis/pull/12564) 修复了从节点删除槽时槽所有权未正确处理的问题
- [#12733](https://github.com/redis/redis/pull/12733) 修复了RedisModuleEvent_Key模块API事件的原子性问题
- [#4324](https://github.com/RediSearch/RediSearch/pull/4324) 内部集群机制未等待所有分片回复导致崩溃的问题 (MOD-6287)
- [#4297](https://github.com/RediSearch/RediSearch/pull/4297) 使用
FT.AGGREGATE
和LOAD
阶段时,执行加载器未能正确缓冲结果可能导致崩溃的问题 (MOD-6385)
-
搜索和查询:
- [#4287](https://github.com/RediSearch/RediSearch/pull/4287) 从副本同步时的重新索引过程由于内部索引变量初始化导致崩溃 (MOD-6337, MOD-6336)
- [#4249](https://github.com/RediSearch/RediSearch/pull/4249) 集群设置中的内存跟踪导致高内存使用和潜在的内存不足 (MOD-6123, MOD-5639)
- [#4244](https://github.com/RediSearch/RediSearch/pull/4244) 使用
WITHCURSOR
标志对FT.AGGREGATE
进行分析时,由于超时导致崩溃 (MOD-5512) - [#3916](https://github.com/RediSearch/RediSearch/pull/3916) 查询时过期的
JSON
文档由于死锁导致崩溃 (MOD-5769, MOD-5895, MOD-6189, MOD-5895) - [#4235](https://github.com/RediSearch/RediSearch/pull/4235) 由于倒排索引树上的节点不平衡导致数据库内存过度增长 (MOD-5880, MOD-5952, MOD-6003)
- [#4190](https://github.com/RediSearch/RediSearch/pull/4190) 对
FT.AGGREGATE
进行分析时,在 RESP3 回复上导致崩溃 (MOD-6250, MOD-6295) - [#4148](https://github.com/RediSearch/RediSearch/pull/4148), [#4038](https://github.com/RediSearch/RediSearch/pull/4038) 集群设置中的
ON_TIMEOUT FAIL\RETURN
策略未被遵守 (MOD-6035, MOD-5948, MOD-6090) - [#4110](https://github.com/RediSearch/RediSearch/pull/4110) 超时时错误响应的格式不一致 (MOD-6011, MOD-5965)
- [#4104](https://github.com/RediSearch/RediSearch/pull/4104) 在 Amazon Linux 2 上使用 TLS 加密时,
FT.SEARCH
无响应 (MOD-6012) - [#4009](https://github.com/RediSearch/RediSearch/pull/4009) 在集群设置中,
FT.SEARCH
未返回超时错误 (MOD-5911) - [#3920](https://github.com/RediSearch/RediSearch/pull/3920) 在集群设置中,
FT.AGGREGATE
未返回超时错误 (MOD-5209) - [#3914](https://github.com/RediSearch/RediSearch/pull/3914) 在光标读取之间更新数据时,使用地理查询的
FT.CURSOR READ
导致崩溃 (MOD-5646) - [#4220](https://github.com/RediSearch/RediSearch/pull/4220) 在删除索引后尝试运行 ForkGC(垃圾回收例程)时服务器崩溃 (MOD-6276)
-
时间序列:
- [LibMR#51](https://github.com/RedisGears/LibMR/pull/51) SSL初始化失败时崩溃 (MOD-5647)
- [#1538](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/1538) Amazon Linux 2: SSL初始化时崩溃。我们现在使用openssl11-devel而不是openssl-devel (MOD-6015)
-
概率数据结构:
- [#707](https://github.com/RedisBloom/RedisBloom/pull/707) Top-K:
TOPK.ADD
和TOPK.QUERY
在项目名称为空字符串时崩溃 (RED-114676)
- [#707](https://github.com/RedisBloom/RedisBloom/pull/707) Top-K:
-
触发器和函数:
- [#1069](https://github.com/RedisGears/RedisGears/pull/1069) 修复了键空间通知可能丢失的问题
-
Redis 版本:
模块版本
推荐的客户端库
- Java
- Python
- NodeJS
- .NET
- Go
兼容RedisInsight。此版本的docker镜像redis/redis-stack捆绑了RedisInsight 2.40。
注意:版本号遵循以下模式:
x.y.z-b
x.y
Redis 主版本z
随着模块 x.y 版本的增加而增加,且为偶数。b
表示对 Redis 或模块的补丁(Redis 或模块的任何z
)。b
将由v
+ 数值组成。
Redis Stack 7.2.0-v5 (2023年10月)
这是Redis Stack Server 7.2.0的维护版本。
更新紧急程度:HIGH
:存在一个可能影响部分用户的关键错误。请升级!
标题:
此版本包含最新的搜索和查询功能,针对关键错误、触发器和函数进行了各种改进和修复,并更新了v8版本,同时引入了新的JSON、时间序列和概率数据结构,并进行了多项改进。新版本引入了对RHEL 9和Rocky Linux 9的支持。它还包括最新版本的RedisInsight。
详情:
改进
-
搜索和查询:
- [#3938](https://github.com/RediSearch/RediSearch/pull/3938) 在多分片数据库中传播错误消息,而不是静默失败 (MOD-5211)
-
JSON:
- [#1102](https://github.com/RedisJSON/RedisJSON/pull/1102) 添加了对CBL-Mariner 2的支持
-
时间序列:
- [#1516](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/1516) 添加了对CBL-Mariner 2的支持
-
概率数据结构:
- [#684](https://github.com/RedisBloom/RedisBloom/pull/684), [#685](https://github.com/RedisBloom/RedisBloom/pull/685) 添加了对CBL-Mariner 2的支持
错误修复
-
Redis:
- 修复了在升级Redis Stack时出现的“RDB文件包含我无法加载的AUX模块数据:没有匹配的模块'graphdata'”错误消息
-
搜索和查询:
- [#3874](https://github.com/RediSearch/RediSearch/pull/3874) 大量文档更新导致内存增长,因为内存块未正确释放 (MOD-5181)
- [#3967](https://github.com/RediSearch/RediSearch/pull/3967) 重新分片优化导致进程卡住 (MOD-5874, MOD-5864)
- [#3892](https://github.com/RediSearch/RediSearch/pull/3892) 清理索引后,垃圾回收可能导致唯一值损坏 (MOD-5815)
- [#3853](https://github.com/RediSearch/RediSearch/pull/3853) 使用
WITHCURSOR
的查询导致内存增长,因为CURSOR
在分片中未失效 (MOD-5580)
-
触发器和函数:
- 将v8版本更新至11.8.172.15
Redis 版本
模块版本
推荐的客户端库
- Java
- Python
- NodeJS
- .NET
- Go
兼容RedisInsight。此版本的docker镜像redis/redis-stack捆绑了RedisInsight 2.36。
注意:版本号遵循以下模式:
x.y.z-b
x.y
Redis 主版本z
随着模块 x.y 版本的增加而增加,且为偶数。b
表示对 Redis 或模块的补丁(Redis 或模块的任何z
)。b
将由v
+ 数值组成。
Redis Stack 7.2.0-v4 (2023年10月)
这是Redis Stack Server 7.2.0的维护版本。
更新紧急程度:SECURITY
:此版本包含安全修复。
标题:
此版本包含对Redis服务器的安全修复,以避免在启动时绕过所需的Unix套接字权限,以及一些改进和错误修复。
详情:
安全与隐私
- Redis:
- (CVE-2023-45145)
listen(2)
和chmod(2)
调用的错误顺序会导致竞争条件,其他进程可以利用此条件在启动时绕过所需的 Unix 套接字权限。
- (CVE-2023-45145)
改进
- Redis:
- [#12611](https://github.com/redis/redis/pull/12611) 修复在MacOS 13上的编译错误
- [#12604](https://github.com/redis/redis/pull/12604) 修复在7.0和7.2混合集群中运行rebalance命令时崩溃的问题
- [#12561](https://github.com/redis/redis/pull/12561) 修复集群分片中槽号返回类型为整数,使其与过去的行为一致
- [#12569](https://github.com/redis/redis/pull/12569) 修复从模块或脚本调用CLUSTER命令时正确返回TLS信息的问题
- [#12571](https://github.com/redis/redis/pull/12571) redis-cli,修复在SUBSCRIBE模式下重新连接时的崩溃问题
- [#12474](https://github.com/redis/redis/pull/12474) 修复下一个计时器事件的溢出计算
错误修复
- Redis:
- [#12620](https://github.com/redis/redis/pull/12620) 在没有写入流量的情况下,如果创建了新的AOF文件并且AOF重写无法立即开始,WAITAOF可能会超时
Redis 版本
模块版本
推荐的客户端库
- Java
- Python
- NodeJS
- .NET
- Go
兼容RedisInsight。此版本的docker镜像redis/redis-stack捆绑了RedisInsight 2.34。
注意:版本号遵循以下模式:
x.y.z-b
x.y
Redis 主版本z
随着模块 x.y 版本的增加而增加,且为偶数。b
表示对 Redis 或模块的补丁(Redis 或模块的任何z
)。b
将由v
+ 数值组成。
Redis Stack 7.2.0-v3 (2023年10月)
这是Redis Stack Server 7.2.0的维护版本。
更新紧急程度:SECURITY
:此版本包含安全修复。
标题:
此版本包含最新的搜索和查询功能 v. 2.8.8,以及触发器和功能 v. 2.0.13,具有各种改进、搜索和查询的安全修复以及多个错误修复。它还包括最新版本的 RedisInsight。
详情:
安全与隐私
- 搜索和查询:
- [#3788](https://github.com/RediSearch/RediSearch/pull/3788) 不要暴露内部集群命令
- [#3844](https://github.com/RediSearch/RediSearch/pull/3844) 限制最大语音长度,避免被利用
改进
- 搜索和查询:
错误修复
-
搜索和查询:
- [#3771](https://github.com/RediSearch/RediSearch/pull/3771) 在
DIALECT 3
中的FT.AGGREGATE
的APPLY
阶段,lower()
和upper()
函数损坏 - [#3752](https://github.com/RediSearch/RediSearch/pull/3752) 在
FT.AGGREGATE
中设置较低的MAXIDLE
参数值会导致崩溃 - [#3780](https://github.com/RediSearch/RediSearch/pull/3780) 错误的文档长度计算导致得分值不正确
- [#3808](https://github.com/RediSearch/RediSearch/pull/3808) 在
FILTER
步骤之后的LOAD
步骤可能会导致FT.AGGREGATE
崩溃 - [#3823](https://github.com/RediSearch/RediSearch/pull/3823)
APPLY
或FILTER
解析器泄漏 - [#3837](https://github.com/RediSearch/RediSearch/pull/3837) 在Redis 7.2上使用TLS的连接失败
- [#3856](https://github.com/RediSearch/RediSearch/pull/3856) 向OSS集群添加新节点导致崩溃
- [#3854](https://github.com/RediSearch/RediSearch/pull/3854) 向量范围查询可能由于内存损坏导致内存不足
- [#3771](https://github.com/RediSearch/RediSearch/pull/3771) 在
-
触发器和函数:
- 将v8版本更新至11.7.439.17。
Redis 版本
模块版本
推荐的客户端库
- Java
- Python
- NodeJS
- .NET
- Go
兼容RedisInsight。此版本的docker镜像redis/redis-stack捆绑了RedisInsight 2.34。
注意:版本号遵循以下模式:
x.y.z-b
x.y
Redis 主版本z
随着模块 x.y 版本的增加而增加,且为偶数。b
表示对 Redis 或模块的补丁(Redis 或模块的任何z
)。b
将由v
+ 数值组成。
Redis Stack 7.2.0-v2 (2023年9月)
这是Redis Stack Server 7.2.0的维护版本。
更新紧急程度:SECURITY
:此版本包含安全修复。
标题:
此版本包含时间序列的安全改进,以防止暴露内部命令,并对触发器和函数进行了多项错误修复。
详情:
安全与隐私
- 时间序列:
错误修复
- 触发器和函数:
- [#1023](https://github.com/RedisGears/RedisGears/pull/1023) 添加 TCONFIG_GET 和 redisgears_2.FORCESHARDSCONNECTION 以排除命令。
- [#1008](https://github.com/RedisGears/RedisGears/pull/1008) 和 [#1020](https://github.com/RedisGears/RedisGears/pull/1020) 修复当 StreamTrigger 触发时读取数据的问题。
- [#1010](https://github.com/RedisGears/RedisGears/pull/1010) 在 AOF 和复制流上应用加载超时。
- V8 JavaScript 引擎的小补丁更新。
Redis 版本
模块版本
推荐的客户端库
- Java
- Python
- NodeJS
- .NET
- Go
兼容RedisInsight。此版本的docker镜像redis/redis-stack捆绑了RedisInsight 2.32。
注意:版本号遵循以下模式:
x.y.z-b
x.y
Redis 主版本z
随着模块 x.y 版本的增加而增加,且为偶数。b
表示对 Redis 或模块的补丁(Redis 或模块的任何z
)。b
将由v
+ 数值组成。
Redis Stack 7.2.0-v1 (2023年9月)
这是Redis Stack Server 7.2.0的维护版本
更新紧急程度:SECURITY
:此版本包含安全修复。
标题:
此版本包含针对Redis服务器的安全修复,适用于用户可能使用SORT_RO命令访问未明确由ACL配置授权的密钥的情况。
详情:
安全修复
- Redis:
- (CVE-2023-41053) Redis 未能正确识别由 SORT_RO 访问的键,因此可能会授予执行此命令的用户访问未被 ACL 配置明确授权的键的权限。
错误修复
- Redis:
- [#12538](https://github.com/redis/redis/pull/12538) 修复将节点加入现有7.0 Redis集群时崩溃的问题
- [#12545](https://github.com/redis/redis/pull/12545), [#12530](https://github.com/redis/redis/pull/12530) 修正一些管理/配置命令的request_policy和response_policy命令提示
Redis 版本
模块版本
推荐的客户端库
- Java
- Python
- NodeJS
- .NET
- Go
兼容RedisInsight。此版本的docker镜像redis/redis-stack捆绑了RedisInsight 2.32。
注意:版本号遵循以下模式:
x.y.z-b
x.y
Redis 主版本z
随着模块 x.y 版本的增加而增加,且为偶数。b
表示对 Redis 或模块的补丁(Redis 或模块的任何z
)。b
将由v
+ 数值组成。
Redis Stack 7.2.0-v0 (2023年8月)
这是Redis Stack版本7.2的GA发布。
标题:
Redis 服务器 7.2 版本为列表、集合和有序集合引入了显著的内存和速度优化,包括对集合和列表的编码改进、流消费者组的改进以及增强的持久性。 搜索和查询功能带来了常见的地理多边形查询,支持基本形状,并在不同场景下提高了排序的查询性能。 JSON 引入了两个新命令:JSON.MERGE 和 JSON.MSET,以便更高效地操作数据。 预览了触发器和函数功能,允许开发者在 Redis 进程中运行 JavaScript 函数。 最后,7.2 版本增加了使用新协议 RESP3 的选项,改进了所有命令的响应格式。
Redis 服务器:
Redis 服务器 7.2 带来了性能和资源利用率的改进,包括对列表、集合和有序集合的显著内存和速度优化。此新版本为 ZRANK 和 ZREVRANK 添加了新的 WITHSCORE
命令参数,新增了命令,如 CLIENT NO-TOUCH,允许客户端在不影响键的 LRU/LFU 的情况下运行命令,以及其他更多功能。Redis 7.2 通过引入新的 RDB 文件格式(版本 11)带来了行为变化,该格式与旧版本不兼容,改变了模块 API 以及其他变化。
搜索和查询:
这个新的大版本引入了经常被问到的Geo Polygon搜索。增加了GEOSHAPE字段类型,该类型支持使用WKT notation的多边形形状。除了现有的用于地理范围查询的GEO
(现在是GEOPOINT
的别名),我们还添加了GEOSHAPE
,支持POLYGON
和POINT
作为新的形状格式和多边形操作。
此外,7.2版本在使用FT.SEARCH
和FT.AGGREGATE
进行SORT BY
操作时带来了性能改进,并且新增了FORMAT
以提高可读性,并仅在RESP3中为FT.SEARCH
和FT.AGGREGATE
提供更好的错误处理响应支持。
JSON: JSON 引入了两个新命令:
- JSON.MERGE 将给定的JSON值合并到匹配的路径中,以便更新、删除或扩展匹配路径上的JSON值。
- JSON.MSET 根据指定的键-路径-值三元组设置或更新一个或多个JSON值。
图:
图形功能不再包含在 Redis Stack 中。请参阅 RedisGraph 终止支持公告。
[!警告]
如果您正在使用旧版本的Redis Stack的图形功能 - 请不要升级。
触发器和函数预览: 触发器和函数是Redis Stack 7.2的一部分,作为公开预览,任何反馈都非常感谢。
触发器和函数提供了在Redis进程中运行JavaScript函数的支持。这些函数可以按需执行,由事件驱动的触发器或流处理触发器执行。触发器和函数使开发者能够通过将逻辑更接近数据来构建和维护实时应用程序,确保较低的延迟,同时提供最佳的开发者体验。
尝试使用触发器和函数快速入门。
详情:
在这里了解更多关于Redis Stack 7.2引入的功能和优化的详细信息:
Redis 版本
模块版本
推荐的客户端库
- Java
- Python
- NodeJS
- .NET
- Go
兼容最新的RedisInsight。此版本的docker镜像redis/redis-stack捆绑了RedisInsight 2.30。
注意:版本号遵循以下模式:
x.y.z-b
x.y
Redis 主版本z
随着模块 x.y 版本的增加而增加,且为偶数。b
表示对 Redis 或模块的补丁(Redis 或模块的任何z
)。b
将由v
+ 数值组成。
Redis Stack 7.2.0-rc2 (2023年7月)
这是Redis Stack版本7.2.0的第三次发布。
更新紧急程度:SECURITY
:此版本中包含安全修复。
标题:
此版本包含对Redis服务器的安全改进。
详情:
功能
- Redis:
- [#10362](https://github.com/redis/redis/pull/10362) 使 SENTINEL CONFIG [SET|GET] 可变参数
- [#12133](https://github.com/redis/redis/pull/12133) 添加一个新的日志级别 "nothing" 以禁用日志记录
- [#9564](https://github.com/redis/redis/pull/9564) 添加 cluster-announce-human-nodename - 用于日志调试的节点唯一标识符
改进
- Redis:
- (CVE-2022-24834) 在Redis中执行特制的Lua脚本可能会触发cjson和cmsgpack库中的堆溢出,导致堆损坏并可能实现远程代码执行。该问题存在于所有支持Lua脚本的Redis版本中,从2.6开始,并且仅影响经过身份验证和授权的用户。
- (CVE-2023-36824) 在某些情况下,从命令和参数列表中提取键名可能会触发堆溢出,导致读取随机堆内存、堆损坏并可能实现远程代码执行。具体来说:使用COMMAND GETKEYS*并在ACL规则中验证键名。
- [#12269](https://github.com/redis/redis/pull/12269) 允许在加载期间使用CLUSTER SLOTS / SHARDS命令
- [#12233](https://github.com/redis/redis/pull/12233) 在未启用"tls-cluster"时支持TLS服务,并在nodes.conf中持久化普通端口和TLS端口
- [#12320](https://github.com/redis/redis/pull/12320) 更新SPOP和RESTORE命令,以便在服务器配置为使用异步删除时,将unlink命令复制到副本
- [#12229](https://github.com/redis/redis/pull/12229) 尝试在ZUNION / ZINTER / ZDIFF中延迟释放临时zset
- [#12298](https://github.com/redis/redis/pull/12298) 将PSUBSCRIBE和PUNSUBSCRIBE从O(N*M)优化为O(N)
- [#12209](https://github.com/redis/redis/pull/12209) 优化SCAN、SSCAN、HSCAN、ZSCAN命令
- [#12315](https://github.com/redis/redis/pull/12315) 设置Jemalloc --disable-cache-oblivious以减少内存开销
- [#12229](https://github.com/redis/redis/pull/12229) 优化ZINTERCARD以避免创建临时zset
- [#12205](https://github.com/redis/redis/pull/12205) 优化HRANDFIELD和ZRANDMEMBER的listpack编码
- [#12155](https://github.com/redis/redis/pull/12155), [#12082](https://github.com/redis/redis/pull/12082), [#11626](https://github.com/redis/redis/pull/11626), [#11944](https://github.com/redis/redis/pull/11944), [#12316](https://github.com/redis/redis/pull/12316), [#12250](https://github.com/redis/redis/pull/12250), [#12177](https://github.com/redis/redis/pull/12177), [#12185](https://github.com/redis/redis/pull/12185) 其他多项优化
- [#12254](https://github.com/redis/redis/pull/12254) redis-cli: 处理包含NaN的RESP3双精度响应
- [#11834](https://github.com/redis/redis/pull/11834) redis-cli: 支持带有IPv6的URI
行为变更
- Redis:
- [#10536](https://github.com/redis/redis/pull/10536), [#12166](https://github.com/redis/redis/pull/12166) 集群分片ID不再在集群节点输出中可见
- [#12326](https://github.com/redis/redis/pull/12326) 当使用RESP3客户端调用PUBLISH并且该客户端也订阅了同一频道时,顺序会改变,回复会在发布的消息之前发送
- [#12321](https://github.com/redis/redis/pull/12321) 将新的(v7.2 RC2)RM_ReplyWithErrorFormat的语义与RM_ReplyWithError对齐。 这是一个影响生成错误代码的重大更改
- [#12304](https://github.com/redis/redis/pull/12304) 禁止在加载时和只读副本上使用RM_AddPostNotificationJob
- [#12219](https://github.com/redis/redis/pull/12219) 添加模块命令过滤器以了解正在处理的客户端的能力
错误修复
- Redis:
- [#12326](https://github.com/redis/redis/pull/12326) 修复了当RESP3发布客户端也订阅了频道时,在MULTI中使用PUBLISH时协议损坏的问题
- [#12220](https://github.com/redis/redis/pull/12220) 修复了WAIT在被阻塞的模块命令解除阻塞后生效的问题
- [#12276](https://github.com/redis/redis/pull/12276) 重新启用在有fork子进程时的缩小重新哈希
- [#12276](https://github.com/redis/redis/pull/12276) 修复了在使用
时HRANDFIELD、SRANDMEMBER、ZRANDMEMBER可能挂起的问题 - [#12276](https://github.com/redis/redis/pull/12276) 改进了RANDOMKEY、HRANDFIELD、SRANDMEMBER、ZRANDMEMBER、SPOP和驱逐中的公平性问题
- [#12344](https://github.com/redis/redis/pull/12344) 集群:修复了在后续故障转移或节点加入时可能回滚的槽迁移的竞争条件
- [#12301](https://github.com/redis/redis/pull/12301)修复 XREADGROUP BLOCK使用">"时挂起的问题
- [#12247](https://github.com/redis/redis/pull/12247)修复 当被阻塞的命令在重新处理时被拒绝时的断言
- [#12342](https://github.com/redis/redis/pull/12342)修复 在阻塞的RM_Call上使用后释放的问题
Redis 版本
模块版本
推荐的客户端库
- Java
- Python
- NodeJS
- .NET
- Go
兼容RedisInsight。此版本的docker镜像redis/redis-stack捆绑了RedisInsight 2.26。
注意:版本号遵循以下模式:
x.y.z-b
x.y
Redis 主版本z
随着模块 x.y 版本的增加而增加,且为偶数。b
表示对 Redis 或模块的补丁(Redis 或模块的任何z
)。b
将由v
+ 数值组成。
Redis Stack 7.2.0-rc2 (2023年6月)
这是Redis Stack版本7.2.0的第二次发布。
标题:
此版本包含一个新功能 - 触发器和函数,对搜索和查询功能的改进,以及对JSON、时间序列和概率数据结构的改进。它还包括最新版本的RedisInsight。
新版本的搜索和查询引入了新的且经常被问到的地理多边形搜索。增加了支持使用WKT表示法的多边形形状的GEOSHAPE
字段类型。除了当前已经用于地理范围查询的GEO
(GEOPOINT
的别名)外,我们还增加了对POLYGON
作为新形状的支持。此外,它还带来了使用FT.SEARCH
和FT.AGGREGATE
进行SORT BY
操作的性能改进。
此版本包含一个新功能 - Triggers and Functions,它带来了使用JavaScript (JS)在Redis内部执行和触发业务逻辑的能力。详细的文档和示例可以在GitHub仓库中找到。Triggers and Functions命令与Redis Functions命令保持一致。API尚未最终确定,可能会根据反馈进行更改。任何反馈都非常感谢。
详情:
功能
-
搜索和查询:
- [#3553](https://github.com/RediSearch/RediSearch/pull/3553) 引入对地理多边形形状和查询的支持
- [#3476](https://github.com/RediSearch/RediSearch/pull/3476), [#3660](https://github.com/RediSearch/RediSearch/pull/3660) 在
FT.CREATE
的SCHEMA
中添加GEOSHAPE
字段类型以映射多边形。 - 支持使用WKT表示法的多边形
POLYGON
,例如POLYGON((x1 y1, x2 y2, ...))
。 - [#3556](https://github.com/RediSearch/RediSearch/pull/3556) 调整
FT.SEARCH
上的查询语法,使用谓词@geom:[OPERATOR $poly]
并以WKT格式定义多边形为PARAMS 2 poly "POLYGON((10 20, ...))"
,使用DIALECT 3
。 - 目前仅支持
WITHIN
和CONTAINS
操作符与GEOSHAPES
。 - [#3645](https://github.com/RediSearch/RediSearch/pull/3645) 支持多个坐标系,包括笛卡尔坐标系(X,Y)和地理坐标系(lon, lat)。地理坐标系默认使用球面索引(
SPHERICAL
)。
- [#3476](https://github.com/RediSearch/RediSearch/pull/3476), [#3660](https://github.com/RediSearch/RediSearch/pull/3660) 在
- [#3046](https://github.com/RediSearch/RediSearch/pull/3046) 引入对
FT.SEARCH
和FT.AGGREGATE
排序操作的性能优化,默认在DIALECT 4
中启用。它将在以下四种场景中提高性能:- 跳过排序器 - 当没有任何排序时应用。查询可以在达到
LIMIT
请求的结果后返回。 - 部分范围 - 当对数字字段进行
SORTBY
且没有过滤器或过滤器为同一数字字段时应用。查询在足够大的范围内迭代以满足LIMIT
请求的结果。 - 混合 - 当对数字字段进行
SORTBY
并附加另一个非数字过滤器时应用。一些结果将被过滤,初始范围可能不够大。然后迭代器在后续范围内重新开始,并进行额外的迭代以收集LIMIT
请求的结果。 - 无优化 - 如果按分数或非数字字段排序,则别无选择,只能检索所有结果并比较它们的值。
- [#3651](https://github.com/RediSearch/RediSearch/pull/3651) 添加
WITHCOUNT
参数,允许返回排序后查询结果的准确计数。此操作处理所有结果以获取准确计数,性能不如优化选项(DIALECT 4
中的默认行为)。
- 跳过排序器 - 当没有任何排序时应用。查询可以在达到
- [#3553](https://github.com/RediSearch/RediSearch/pull/3553) 引入对地理多边形形状和查询的支持
-
JSON:
- [#916](https://github.com/RedisJSON/RedisJSON/pull/916) 引入新的
JSON.MERGE
以符合 RFC 7396,支持:- 在现有的JSON文档上创建新属性
- 更新和替换父属性和子属性中的值
- 删除现有属性(将值设为
null
) - 数组更新 - 用新值替换整个数组。
- [#944](https://github.com/RedisJSON/RedisJSON/pull/944) 引入
JSON.MSET
,支持在同一哈希槽中的键进行原子多重设置。
- [#916](https://github.com/RedisJSON/RedisJSON/pull/916) 引入新的
-
触发器和函数:
- [#875](https://github.com/RedisGears/RedisGears/pull/875) 在库的前言中添加了api_version,表示所需的最低API版本。表示该库适用于指定的API版本及以后的次要版本。 [#896](https://github.com/RedisGears/RedisGears/pull/896) 在KeySpace触发器上添加了额外的可选回调,可以在通知发生时执行读取操作。
- [#910](https://github.com/RedisGears/RedisGears/pull/910) JavaScript API已更新,以符合JavaScript最佳实践。函数和触发器的注册使用强制参数和单个可选对象完成。
- [#935](https://github.com/RedisGears/RedisGears/pull/935) 能够从加载了RedisGears模块但未使用的Redis服务器加载RDB到未加载RedisGears模块的Redis服务器中。
- 更新的命令:
- [#910](https://github.com/RedisGears/RedisGears/pull/910) 使用
TFUNCTION
和TFCALL
代替RG.FUNCTION
和RG.FCALL
。 - [#939](https://github.com/RedisGears/RedisGears/pull/939) 命令已更新以匹配Redis Functions命令。
TFCALL
将库和函数组合在一个参数中,用'.'分隔。示例:TFCALL
。. - [#900](https://github.com/RedisGears/RedisGears/pull/900) 在
TFCALLASYNC
中评估了将函数作为协程运行的能力。客户端依赖TFCALL
从不阻塞共享连接,因此其他命令不会在此类连接上延迟。
- [#910](https://github.com/RedisGears/RedisGears/pull/910) 使用
改进
-
搜索和查询:
- [#3641](https://github.com/RediSearch/RediSearch/pull/3641) 在大量数据更新场景中索引清理触发器。
- [#3614](https://github.com/RediSearch/RediSearch/pull/3614) 聚合执行管道的多项改进。
-
触发器和函数:
- [#906](https://github.com/RedisGears/RedisGears/pull/906) 限制所有组合库的总内存使用量,这些值可以在模块加载时配置。
- [#940](https://github.com/RedisGears/RedisGears/pull/940) 在上传新库时验证当前内存使用情况,以确保不超过最大内存限制。
行为变更
- 搜索和查询:
- [#3355](https://github.com/RediSearch/RediSearch/pull/3355), [#3635](https://github.com/RediSearch/RediSearch/pull/3635) 从从属索引中删除过期的键,返回一个空数组而不是
nil
。
- [#3355](https://github.com/RediSearch/RediSearch/pull/3355), [#3635](https://github.com/RediSearch/RediSearch/pull/3635) 从从属索引中删除过期的键,返回一个空数组而不是
错误修复
-
搜索和查询:
- [#3597](https://github.com/RediSearch/RediSearch/pull/3597) 在
FT.AGGREGATE
的reducer(REDUCE
参数)中将别名作为输出名称复制时,不会返回结果。 - [#3654](https://github.com/RediSearch/RediSearch/pull/3654) 添加了对
GROUPBY
字段上@
前缀的检查,返回错误而不是错误的结果。 - [#3501](https://github.com/RediSearch/RediSearch/pull/3501) 按两个或更多字段排序时,遵循顺序,不会忽略第二个参数。
- [#3582](https://github.com/RediSearch/RediSearch/pull/3582) 排序器将在查询期间过期的文档中设置较低的排名,防止客户端冻结。
- [#3597](https://github.com/RediSearch/RediSearch/pull/3597) 在
-
JSON:
- [#1025](https://github.com/RedisJSON/RedisJSON/pull/1025)
JSON.TOGGLE
键空间通知修复。
- [#1025](https://github.com/RedisJSON/RedisJSON/pull/1025)
-
时间序列:
- [#1471](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/1471) 在聚合数百万个时间序列时,
MRANGE
可能会崩溃。 - [#1469](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/1469) 在驱逐后,
MRANGE
可能存在内存泄漏。
- [#1471](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/1471) 在聚合数百万个时间序列时,
-
触发器和函数:
- [#913](https://github.com/RedisGears/RedisGears/pull/913) 当Redis从持久化文件加载时,不要触发通知。
Redis 版本
模块版本
推荐的客户端库
- Java
- Python
- NodeJS
- .NET
- Go
兼容最新的RedisInsight。此版本的docker镜像redis/redis-stack捆绑了RedisInsight 2.26。
注意:版本号遵循以下模式:
x.y.z-b
x.y
Redis 主版本z
随着模块 x.y 版本的增加而增加,且为偶数。b
表示对 Redis 或模块的补丁(Redis 或模块的任何z
)。b
将由v
+ 数值组成。
Redis Stack 7.2.0-rc1 (2023年6月)
这是Redis Stack版本7.2.0的首次发布。
标题:
此版本包含最新的搜索和查询功能、JSON功能以及新版本的RedisInsight。
最新的搜索和查询功能引入了新的且经常被问到的地理多边形搜索。添加了支持使用WKT表示法表示多边形形状的GEOMETRY
字段类型。此外,它还提高了使用FT.SEARCH
和FT.AGGREGATE
进行SORT BY
操作的性能。
最新的JSON功能引入了符合RFC 7396的新JSON.MERGE
,以及支持在同一哈希槽中对键进行原子多组设置的JSON.MSET
。
详情:
功能
-
搜索和查询:
- [#3553](https://github.com/RediSearch/RediSearch/pull/3553) 引入对地理多边形形状和查询的支持
- [#3476](https://github.com/RediSearch/RediSearch/pull/3476) 在
FT.CREATE
的SCHEMA
中添加GEOMETRY
字段类型以映射多边形 - 使用WKT表示法添加多边形,例如
POLYGON((x1 y1, x2 y2, ...))
- [#3556](https://github.com/RediSearch/RediSearch/pull/3556) 调整
FT.SEARCH
上的查询语法,使用谓词@geom:[OPERATOR $poly]
并以WKT格式定义多边形为PARAMS 2 poly "POLYGON((10 20, ...))"
,使用DIALECT 3
- 最初仅支持
WITHIN
和CONTAINS
操作符与几何图形
- [#3476](https://github.com/RediSearch/RediSearch/pull/3476) 在
- [#3046](https://github.com/RediSearch/RediSearch/pull/3046) 在
FT.SEARCH
和FT.AGGREGATE
中引入OPTIMIZE
关键字到SORTBY
查询中,以在4种不同场景中提高性能:- 跳过排序器 - 当没有任何排序时应用。查询可以在达到请求的
LIMIT
结果后返回。 - 部分范围 - 当有一个
SORTBY
数字字段,没有过滤器或通过相同的数字字段过滤时应用。查询在足够大的范围内迭代以满足请求的LIMIT
结果。 - 混合 - 当有一个
SORTBY
数字字段以及另一个非数字过滤器时应用。一些结果将被过滤,初始范围可能不够大。然后迭代器被重新调整到以下范围,并进行额外的迭代以收集请求的LIMIT
结果。 - 无优化 - 如果有按分数或非数字字段排序,则别无选择,只能检索所有结果并比较它们的值。
- 跳过排序器 - 当没有任何排序时应用。查询可以在达到请求的
- [#3553](https://github.com/RediSearch/RediSearch/pull/3553) 引入对地理多边形形状和查询的支持
-
JSON:
- [#916](https://github.com/RedisJSON/RedisJSON/pull/916) 引入新的
JSON.MERGE
以符合 RFC 7396,支持:- 在现有的JSON文档上创建新属性
- 更新和替换父属性和子属性中的值
- 删除现有属性(将值设为
null
) - 数组更新 - 用新值替换整个数组
- [#944](https://github.com/RedisJSON/RedisJSON/pull/944) 引入
JSON.MSET
,支持在同一哈希槽中的键进行原子多重设置
- [#916](https://github.com/RedisJSON/RedisJSON/pull/916) 引入新的
改进
- 搜索和查询:
行为变更
- 搜索和查询:
- [#3355](https://github.com/RediSearch/RediSearch/pull/3355) 从从属索引中删除过期的键,返回一个空数组而不是
nil
- [#3355](https://github.com/RediSearch/RediSearch/pull/3355) 从从属索引中删除过期的键,返回一个空数组而不是
错误修复
- 搜索和查询:
- [#3562](https://github.com/RediSearch/RediSearch/pull/3562) 使用
REPLICAOF
时,索引定义可能会多次加载,导致失败 - [#3557](https://github.com/RediSearch/RediSearch/pull/3557)
FT.AGGREGATE
查询中的TIMEOUT
配置被忽略 - [#3606](https://github.com/RediSearch/RediSearch/pull/3606) 更新数字倒排索引
numEntries
,避免内存消耗过多 - [#3552](https://github.com/RediSearch/RediSearch/pull/3552) 在
JSON
数字查询上执行FT.CURSOR READ
未返回结果
- [#3562](https://github.com/RediSearch/RediSearch/pull/3562) 使用
Redis 版本
模块版本
推荐的客户端库
- Java
- Python
- NodeJS
- .NET
- Go
兼容最新的RedisInsight。此版本的docker镜像redis/redis-stack捆绑了RedisInsight 2.26。
注意:版本号遵循以下模式:
x.y.z-b
x.y
Redis 主版本z
随着模块 x.y 版本的增加而增加,且为偶数。b
表示对 Redis 或模块的补丁(Redis 或模块的任何z
)。b
将由v
+ 数值组成。