Redis 7.4.2版本发布:安全修复与关键改进
Redis是一个开源的高性能键值数据库,以其出色的速度、灵活的数据结构和丰富的功能而闻名。作为内存数据库,Redis广泛应用于缓存、消息队列、实时分析等场景。近日,Redis发布了7.4.2版本,这是一个重要的维护版本,主要包含安全修复和一些关键问题的解决。
安全修复
本次版本包含两个重要的安全修复,值得所有Redis用户特别关注:
-
Lua脚本执行问题(CVE-2024-46981)
这个问题可能导致通过精心构造的Lua脚本命令在Redis服务器上执行非预期操作。Lua脚本是Redis提供的一个强大功能,允许用户在服务器端执行复杂的原子操作。由于Redis通常以较高权限运行,这个问题需要特别重视。建议所有用户尽快升级以解决此问题。 -
ACL选择器服务稳定性问题(CVE-2024-51741)
Redis的访问控制列表(ACL)功能允许管理员精细控制用户权限。这个问题可能导致通过发送特殊构造的ACL选择器影响Redis服务稳定性。对于面向公众开放的Redis实例,这个问题尤其需要注意。
核心功能改进
除了安全修复外,7.4.2版本还包含多个重要的功能修复:
流(Streams)数据结构改进
-
XINFO命令lag字段修复
当消费组的最后ID后面存在特殊标记时,XINFO命令返回的lag字段值不正确。lag字段用于表示消费者落后于生产者多少条消息,这个修复确保了监控数据的准确性。 -
XTRIM命令与特殊标记处理
XTRIM命令在执行后未能正确更新最大特殊标记,导致后续的lag计算出现偏差。这个问题已得到修复,确保了流数据修剪后各项指标的准确性。
内存管理优化
-
模块内存碎片整理稳定性修复
在特定情况下,Redis模块的内存碎片整理过程可能导致服务器不稳定。这个修复提高了Redis的稳定性,特别是在使用自定义模块的场景下。 -
RDB加载失败时的资源释放
修复了在RDB文件加载失败时可能出现的资源释放问题。RDB是Redis的持久化机制之一,这个修复确保了在异常情况下系统资源的正确管理。 -
函数库上下文内存同步问题
修复了functionsLibCtx中cache_memory的一个同步问题,提高了多线程环境下的稳定性。
哈希数据类型修复
- 带过期时间的哈希键引用计数问题
当哈希键不再包含任何字段但仍有过期时间设置时,在执行RENAME、MOVE、SWAPDB或RESTORE操作时会出现键引用计数错误。这个修复确保了在这些操作下键的生命周期管理正确无误。
集群功能增强
-
集群配置加载稳定性
修复了加载集群配置时可能导致不稳定的问题,提高了Redis集群的可靠性。 -
CLUSTER SHARDS命令改进
修复了CLUSTER SHARDS命令可能返回空数组的问题。这个命令用于获取集群分片信息,是管理和监控Redis集群的重要工具。 -
版本兼容性提升
解决了与旧版本节点的一些兼容性问题,使得不同版本的Redis节点能够更好地协同工作。 -
SORT命令错误信息修正
修复了在集群模式下使用SORT命令时,GET #参数返回的错误信息不准确的问题。
升级建议
考虑到7.4.2版本包含关键安全修复,所有Redis用户都应尽快安排升级。升级前建议:
- 在生产环境升级前,先在测试环境验证应用兼容性
- 备份重要数据
- 检查所有依赖Redis的功能是否正常工作
- 监控升级后的系统性能指标
对于无法立即升级的用户,应评估安全修复的影响范围并采取适当的缓解措施,如加强网络访问控制等。
Redis 7.4.2版本的发布再次体现了Redis社区对安全性和稳定性的重视。通过及时修复关键问题和提升系统可靠性,Redis继续为开发者提供可靠的数据存储解决方案。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0172
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook096
Step-3.7-FlashStep-3.7-Flash是一个拥有 1980 亿参数的稀疏混合专家(MoE)视觉语言模型,由 1960 亿参数的语言主干网络和 18 亿参数的视觉编码器组合而成,具备原生图像理解能力。Python00
BitCPM-CANN-8BBitCPM-CANN 是首个基于华为昇腾 NPU 原生构建的端到端 1.58 位(三值化)大语言模型训练系统。该系统将量化感知训练(QAT)集成到 Megatron-LM 框架中,并结合 MindSpeed 加速,覆盖了从自定义三值算子到基于昇腾 910B 的分布式并行训练的完整训练栈。Python00
MiniCPM5-1BMiniCPM5-1B,这是 MiniCPM5 系列的首款模型。它是一个专为端侧、本地部署和资源受限场景打造的 10 亿参数密集型 Transformer 模型,达到了 10 亿参数级开源模型的 SOTA 水平Jinja00
skillhubopenJiuwen 生态的 Skill 托管与分发开源方案,支持自建与可选 ClawHub 兼容。Python0239