Redis Enterprise Software 发行说明 7.4.2-54(2024 年 2 月)
新的 Cluster Manager UI 增强功能,包括主动-主动数据库管理。完全支持 TLS 1.3。自动恢复配置。完整的 IPv6 支持,包括内部流量。维护模式增强功能。模块管理增强功能。RHEL 9 支持。
Redis 企业软件 |
---|
Redis 企业软件版本 7.4.2 现已推出!
突出
此版本提供:
-
新的 Cluster Manager UI 增强功能,包括主动-主动数据库管理
-
完全支持 TLS 1.3
-
自动恢复配置
-
完整的 IPv6 支持,包括内部流量
-
维护模式增强功能
-
模块管理增强功能
-
以前已弃用的 RHEL 7 和 Oracle Linux 7 不再受支持
-
RHEL 9 支持
此版本中的新增功能
新功能
-
添加了对 TLS 1.3 的完全支持:
-
可以使用 REST API 配置从持久性文件中自动恢复数据库。有关详细信息,请参阅配置自动恢复。
-
新集群完全支持 IPv6,包括内部流量。有关详细信息,请参阅为内部流量启用 IPv6。
增强
-
新的 Cluster Manager UI 增强功能:
-
维护模式增强功能:
-
仅保留最新的维护模式快照。
-
使用
overwrite_snapshot
选项以在打开维护模式时创建新快照。 -
keep_slave_shards
已弃用。用evict_ha_replica
和evict_active_active_replica
相反。 -
查看或删除节点快照
/v1/nodes/{node_uid}/snapshots
REST API 请求。
-
-
添加了对 RHEL 9 的支持。
-
改进
actions
REST API:-
改进
progress
字段返回者GET /v1/actions
请求。 -
New 请求,用于获取特定数据库的所有当前正在执行、待处理或已完成的作的状态:
GET /v1/actions/bdb/<bdb_uid>
-
-
GET /v1/users
REST API 请求包括一个新的status
字段,指示用户是否可以登录:-
active
:用户可以登录 -
locked
:用户无法登录
-
-
取代了
job_scheduler
,cnm_http
和crdb_coordinator
使用线程,这会导致显著的内存优化。
Redis 模块功能集
Redis Enterprise 附带多个模块。从版本 7.4.2 开始,Redis Enterprise 包括两个功能集,与不同的 Redis 数据库版本兼容。
与 Redis 数据库版本 7.2 兼容的捆绑 Redis 模块:
与 Redis 数据库版本 6.0 和 6.2 兼容的捆绑 Redis 模块:
已解决的问题
-
RS57417:具有专用链接的 Azure OSS 群集不应再返回公共 IP 来响应
CLUSTER
命令。 -
RS106159:如果不支持 RESP3,则
HELLO
请求现在返回未知命令错误,而不是协议错误。 -
RS107538:修复了由于 CCS 不一致而导致 DMC 代理永久重新启动的问题。
版本变更
重大更改
-
重 命名
sentinel_ssl_policy
田。新名称为sentinel_tls_mode
.-
您只能使用
sentinel_tls_mode
. -
使用
GET /v1/cluster
,则返回这两个字段以实现向后兼容性。
-
-
端口 3345 现在保留供内部使用。
-
类型
progress
字段返回者GET /v1/actions
请求修改自integer
自float
.
弃用
API 弃用
-
副本 HA 集群策略已弃用。
-
维护模式选项
keep_slave_shards
在rladmin
和 REST API。用evict_ha_replica
和evict_active_active_replica
相反。 -
/v1/debuginfo
REST API 路径已弃用。使用新路径/v1/cluster/debuginfo
,/v1/nodes/debuginfo
和/v1/bdbs/debuginfo
相反。
旧版 UI 弃用
旧版 UI 已被弃用,取而代之的是新的 Cluster Manager UI,并将在未来版本中删除。
Redis 6.0 数据库弃用
Redis 数据库版本 6.0 自 Redis Enterprise Software 版本 7.4.2 起已弃用,并将在未来版本中删除。
要为将来删除 Redis 6.0 做准备,请执行以下作:
-
对于 Redis Enterprise 6.2.* 集群,请将 Redis 6.0 数据库升级到 Redis 6.2。有关更改列表,请参阅 Redis 6.2 发行说明。
-
对于 Redis Enterprise 7.2.4 和 7.4.2 集群,请将 Redis 6.0 数据库升级到 Redis 7.2。在升级数据库之前,请参阅 Redis 7.2 重大更改列表,并更新连接到数据库的任何应用程序以处理这些更改。
作系统停用
- RHEL 7 和 Oracle Linux 7 之前在 Redis Enterprise Software 7.2.4 发行说明中宣布已弃用。从 Redis Enterprise Software 7.4.2 开始,不再支持 RHEL 7 和 Oracle Linux 7。
安全停用
-
RC4 加密密码(以前已弃用,以支持更强的密码)不再受支持。
-
3DES 加密密码(以前已弃用,转而使用 AES 等更强的密码)不再受支持。验证所有客户端、应用程序和连接是否都支持 AES 密码。
-
TLS 1.0 和 TLS 1.1 连接(以前已弃用,转而支持 TLS 1.2 或更高版本)不再受支持。验证所有客户端、应用程序和连接是否都支持 TLS 1.2 或更高版本。
支持的平台
下表提供了截至此 Redis Enterprise Software 版本支持的平台的快照。有关作系统兼容性的更多详细信息,请参阅支持的平台参考。
✅ 支持 – 此版本的 Redis Enterprise Software 支持该平台。
⚠️已弃用 – 此版本的 Redis Enterprise Software 仍支持该平台,但在未来版本中将取消支持。
❌ 生命周期结束 – 平台支持在此版本的 Redis Enterprise Software 中结束。
Redis 企业版 | 7.4.2 | 7.2.4 | 6.4.2 | 6.2.18 | 6.2.12 | 6.2.10 | 6.2.8 | 6.2.4 |
---|---|---|---|---|---|---|---|---|
发布日期 | 2024 年 2 月 |
2023 年 8 月 |
2023 年 2 月 |
2022 年 9 月 |
2022 年 8 月 |
2022 年 2 月 |
2021 年 10 月 |
2021 年 8 月 |
生命周期结束日期 | – | 2025 年 7 月 |
2025 年 2 月 |
2024 年 8 月 |
2024 年 8 月 |
2024 年 8 月 |
2024 年 8 月 |
2024 年 8 月 |
Ubuntu 浏览器1 | ||||||||
20.04 | ✅ | ✅ | ✅6 | – | – | – | – | – |
18.04 | ⚠️ | ⚠️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
16.04 | – | ❌ | ⚠️ | ✅ | ✅ | ✅ | ✅ | ✅ |
RHEL & CentOS2 | ||||||||
9.0-9.3 | ✅ | – | – | – | – | – | – | – |
8.9 | ✅ | – | – | – | – | – | – | – |
8.8 | ✅ | ✅ | ✅8 | – | – | – | – | – |
8.7 | ✅ | ✅ | ✅ | – | – | – | – | – |
8.5-8.6 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | – | – |
8.0-8.4 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | – |
7.0-7.9 | ❌ | ⚠️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
甲骨文 Linux3 | ||||||||
8 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | – | – |
7 | ❌ | ⚠️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
洛奇 Linux3 | ||||||||
8 | ✅ | ✅ | ✅ | ✅ | – | – | – | – |
Amazon Linux | ||||||||
2 | ✅ | ✅ | ✅7 | – | – | – | – | – |
1 | ⚠️ | ⚠️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
码头工人4 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Kubernetes (简体中文)5 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-
RHEL 和 CentOS 部署需要防火墙配置。
-
Redis Enterprise Software 的 Docker 映像仅经过认证,可用于开发和测试。
-
Ubuntu 20.04 支持已在 Redis Enterprise Software 6.4.2-43 中添加。
-
Redis Enterprise Software 6.4.2-61 中添加了 Amazon Linux 2 支持的候选版本。Redis Enterprise Software 6.4.2-69 中添加了对 Amazon Linux 2 的官方支持。
-
Redis Enterprise Software 6.4.2-103 及更高版本支持 RHEL 8.8。
下载
下表显示了可用软件包的 MD5 校验和:
包 | MD5 校验和(7.4.2-54 2 月版) |
---|---|
Ubuntu 18 的 | d22100b9ce51f602b7b93751bc0ab439 |
Ubuntu 20 的 | 784f3d07eafc99104da124d69f49b617 |
RedHat Enterprise Linux (RHEL) 8 Oracle Enterprise Linux (OL) 8 Rocky Enterprise Linux |
107c1ce8510fd16026bac4179bb2aaa8 |
RedHat 企业 Linux (RHEL) 9 | d5fe1b085147b6ee1fc6f70aa43b263f |
Amazon Linux 2 | 62b3dfb977750a3879c7e83c66a7726c |
已知限制
新的 Cluster Manager UI 限制
以下旧版 UI 功能在新的 Cluster Manager UI 中尚不可用:
-
删除节点。
请改用 REST API 或旧版 UI。有关说明,请参阅删除集群节点。
-
清除主动-主动实例。
-
搜索并导出日志。
Amazon Linux 2 上 7.4.2 模块的 OpenSSL 兼容性问题
由于模块和集群之间存在 OpenSSL 1.1 兼容性问题,如果 Amazon Linux 2 集群的数据库使用以下模块:RedisGears、RediSearch 或 RedisTimeSeries,则不完全支持 Redis Enterprise Software 版本 7.4.2-54。
此问题将在将来的维护版本中修复。
RedisGraph 阻止升级到 RHEL 9
如果 Redis Enterprise 集群包含 RedisGraph 模块,则无法从以前的 RHEL 版本升级到 RHEL 9,即使任何数据库未使用也是如此。RedisGraph 模块已达到生命周期结束,在 RHEL 9 中完全不可用。
无法使用模块创建 Redis v6.x 双活数据库
您无法创建将 Redis 版本 6.0 或 6.2 与模块结合使用的主动-主动数据库。使用 Redis 版本 7.2 的数据库没有此限制。
此限制将在将来的维护版本中修复。
安全
开源 Redis 安全修复兼容性
作为 Redis 安全承诺的一部分,Redis Enterprise Software 实施了开源 Redis 提供的最新安全修复程序。Redis Enterprise 已经包含了相关 CVE 的修复程序。
针对开源 Redis 宣布的一些 CVE 不会影响 Redis Enterprise,因为 Redis Enterprise 中提供的功能不同或附加,而开源 Redis 中不可用。
Redis Enterprise 7.4.2-54 支持开源的 Redis 7.2、6.2 和 6.0。以下是按版本修复的开源 Redis CVE 列表。
Redis 7.2.x:
-
(CVE-2023-41056 漏洞)在某些情况下,Redis 可能会错误地处理内存缓冲区的大小调整,这可能会导致缓冲区大小的计算不正确,并导致堆溢出和潜在的远程代码执行。
-
(CVE-2023-41053 漏洞)Redis 无法正确识别
SORT_RO
因此,可能会授予执行此命令的用户访问未由 ACL 配置明确授权的密钥的权限。(Redis 7.2.1)
Redis 7.0.x版本:
-
(CVE-2023-41056 漏洞)在某些情况下,Redis 可能会错误地处理内存缓冲区的大小调整,这可能会导致缓冲区大小的计算不正确,并导致堆溢出和潜在的远程代码执行。
-
(CVE-2023-41053 漏洞)Redis 无法正确识别
SORT_RO
因此,可能会授予执行此命令的用户访问未由 ACL 配置明确授权的密钥的权限。(Redis 7.0.13) -
(CVE-2023-36824 漏洞)在某些情况下,从命令和参数列表中提取键名称可能会触发堆溢出,并导致读取随机堆内存、堆损坏和可能的远程代码执行。具体来说:使用
COMMAND GETKEYS*
以及 ACL 规则中键名称的验证。(Redis 7.0.12) -
(CVE-2023-28856 漏洞)经过身份验证的用户可以使用
HINCRBYFLOAT
命令创建无效的哈希字段,该字段将在访问时使 Redis 崩溃。(Redis 7.0.11) -
(CVE-2023-28425 漏洞)特制
MSETNX
命令可能导致断言和拒绝服务。(Redis 7.0.10) -
(CVE-2023-25155 漏洞)特制
SRANDMEMBER
,ZRANDMEMBER
和HRANDFIELD
命令可能会触发整数溢出,从而导致运行时断言和终止 Redis 服务器进程。(Redis 7.0.9) -
(CVE-2023-22458 漏洞)Redis 中的整数溢出
HRANDFIELD
和ZRANDMEMBER
命令可能导致拒绝服务。(Redis 7.0.8) -
(CVE-2022-36021 漏洞)字符串匹配命令(如
SCAN
或KEYS
) 触发对 Redis 的拒绝服务攻击,导致其挂起并消耗 100% 的 CPU 时间。(Redis 7.0.9) -
(CVE-2022-35977 漏洞)Redis 中的整数溢出
SETRANGE
和SORT
/SORT_RO
命令可能会使 Redis 出现 OOM panic。(Redis 7.0.8) -
(CVE-2022-35951 漏洞)执行
XAUTOCLAIM
命令,并使用特制的COUNT
参数可能会导致整数溢出、后续堆溢出,并可能导致远程代码执行。此问题会影响 Redis 版本 7.0.0 或更高版本。(Redis 7.0.5) -
(CVE-2022-31144 漏洞)特制的
XAUTOCLAIM
命令可能会导致堆溢出,并可能远程执行代码。此问题会影响 Redis 版本 7.0.0 或更高版本。(Redis 7.0.4) -
(CVE-2022-24834 漏洞)在 Redis 中执行的特制 Lua 脚本可在 cjson 和 cmsgpack 库中触发堆溢出,并导致堆损坏和可能的远程代码执行。从 2.6 开始,所有支持 Lua 脚本的 Redis 版本都存在此问题,并且仅影响经过身份验证的用户和授权用户。(Redis 7.0.12)
-
(CVE-2022-24736 漏洞)尝试加载特制 Lua 脚本的攻击者可导致空指针取消引用,从而导致
redis-server
过程。此问题会影响 Redis 的所有版本。(Redis 7.0.0) -
(CVE-2022-24735 漏洞)通过利用 Lua 脚本执行环境中的弱点,有权访问 Redis 的攻击者可以注入 Lua 代码,该代码将以另一个 Redis 用户的(可能更高)权限执行。(Redis 7.0.0)
Redis 6.2.x:
-
(CVE-2023-28856 漏洞)经过身份验证的用户可以使用
HINCRBYFLOAT
命令创建无效的哈希字段,该字段将在访问时使 Redis 崩溃。(Redis 6.2.12) -
(CVE-2023-25155 漏洞)特制
SRANDMEMBER
,ZRANDMEMBER
和HRANDFIELD
命令可能会触发整数溢出,从而导致运行时断言和终止 Redis 服务器进程。(Redis 6.2.11) -
(CVE-2023-22458 漏洞)Redis 中的整数溢出
HRANDFIELD
和ZRANDMEMBER
命令可能导致拒绝服务。(Redis 6.2.9) -
(CVE-2022-36021 漏洞)字符串匹配命令(如
SCAN
或KEYS
) 触发对 Redis 的拒绝服务攻击,导致其挂起并消耗 100% 的 CPU 时间。(Redis 6.2.11) -
(CVE-2022-35977 漏洞)Redis 中的整数溢出
SETRANGE
和SORT
/SORT_RO
命令可能会使 Redis 出现 OOM panic。(Redis 6.2.9) -
(CVE-2022-24834 漏洞)在 Redis 中执行的特制 Lua 脚本可在 cjson 和 cmsgpack 库中触发堆溢出,并导致堆损坏和可能的远程代码执行。从 2.6 开始,所有支持 Lua 脚本的 Redis 版本都存在此问题,并且仅影响经过身份验证的用户和授权用户。(Redis 6.2.13)
-
(CVE-2022-24736 漏洞)尝试加载特制 Lua 脚本的攻击者可导致空指针取消引用,从而导致
redis-server
过程。此问题会影响 Redis 的所有版本。(Redis 6.2.7) -
(CVE-2022-24735 漏洞)通过利用 Lua 脚本执行环境中的弱点,有权访问 Redis 的攻击者可以注入 Lua 代码,该代码将以另一个 Redis 用户的(可能更高)权限执行。(Redis 6.2.7)
-
(CVE-2021-41099 漏洞)处理某些字符串命令和网络负载时出现整数到堆缓冲区溢出,当
proto-max-bulk-len
手动配置为非默认的非常大的值。(Redis 6.2.6) -
(CVE-2021-32762 漏洞)中的整数到堆缓冲区溢出问题
redis-cli
和redis-sentinel
在一些较旧和不太常见的平台上解析大型多批量回复。(Redis 6.2.6) -
(CVE-2021-32761 漏洞)Redis 版本 2.2 或更高版本中的整数溢出错误可使用
BITFIELD
命令来破坏堆,并可能导致远程代码执行。(Redis 6.2.5) -
(CVE-2021-32687 漏洞)整数到堆缓冲区溢出,当 intsets
set-max-intset-entries
手动配置为非默认的非常大的值。(Redis 6.2.6) -
(CVE-2021-32675 漏洞)在许多连接上处理具有大量元素的 RESP 请求负载时,拒绝服务。(Redis 6.2.6)
-
(CVE-2021-32672 漏洞)Lua 调试器的随机堆读取问题。(Redis 6.2.6)
-
(CVE-2021-32628 漏洞)当为
hash-max-ziplist-entries
,hash-max-ziplist-value
,zset-max-ziplist-entries
或zset-max-ziplist-value
.(Redis 6.2.6) -
(CVE-2021-32627 漏洞)当为
proto-max-bulk-len
和client-query-buffer-limit
.(Redis 6.2.6) -
(CVE-2021-32626 漏洞)特别构建的 Lua 脚本可能会导致堆缓冲区溢出。(Redis 6.2.6)
-
(CVE-2021-32625 漏洞)使用 STRALGO LCS 命令可以利用 Redis 版本 6.0 或更高版本中的整数溢出错误来破坏堆,并可能导致远程代码执行。这是 CVE-2021-29477 修复不完整的结果。(Redis 6.2.4)
-
(CVE-2021-29478 漏洞)Redis 6.2 中的整数溢出错误可能被利用来破坏堆,并可能导致远程代码执行。该漏洞涉及更改默认的 set-max-intset-entries 配置值,创建一个由整数值组成的大型 set 键,并使用 COPY 命令复制它。从 2.6 开始的所有 Redis 版本都存在整数溢出错误,它可能导致 RDB 或 DUMP 有效负载损坏,但不会通过 COPY(在 6.2 之前不存在)利用。(Redis 6.2.3)
-
(CVE-2021-29477 漏洞)使用 STRALGO LCS 命令,可以利用 Redis 版本 6.0 或更高版本中的整数溢出错误来破坏堆,并可能导致远程代码执行。从 6.0 开始的所有 Redis 版本都存在整数溢出错误。(Redis 6.2.3)
Redis 6.0.x:
-
(CVE-2022-24834 漏洞)在 Redis 中执行的特制 Lua 脚本可在 cjson 和 cmsgpack 库中触发堆溢出,并导致堆损坏和可能的远程代码执行。从 2.6 开始,所有支持 Lua 脚本的 Redis 版本都存在此问题,并且仅影响经过身份验证的用户和授权用户。(Redis 6.0.20)
-
(CVE-2023-28856 漏洞)经过身份验证的用户可以使用
HINCRBYFLOAT
命令创建无效的哈希字段,该字段将在访问时使 Redis 崩溃。(Redis 6.0.19) -
(CVE-2023-25155 漏洞)特制
SRANDMEMBER
,ZRANDMEMBER
和HRANDFIELD
命令可能会触发整数溢出,从而导致运行时断言和终止 Redis 服务器进程。(Redis 6.0.18) -
(CVE-2022-36021 漏洞)字符串匹配命令(如
SCAN
或KEYS
) 触发对 Redis 的拒绝服务攻击,导致其挂起并消耗 100% 的 CPU 时间。(Redis 6.0.18) -
(CVE-2022-35977 漏洞)Redis 中的整数溢出
SETRANGE
和SORT
/SORT_RO
命令可能会使 Redis 出现 OOM panic。(Redis 6.0.17)