Redis 社区版 7.4 版本说明

Redis 社区版 7.4 发行说明。

Redis 堆栈

Redis 社区版 7.4.1(2024 年 10 月)

升级紧急性 安全性:请参阅下面的安全修复程序。

安全修复

  • (CVE-2024-31449 漏洞)Lua 库命令可能会导致堆栈溢出和潜在的 RCE。
  • (CVE-2024-31227 漏洞)由于 ACL 选择器格式错误而可能导致拒绝服务。
  • (CVE-2024-31228 漏洞)由于无界模式匹配而可能导致拒绝服务。

有关更多信息,请参阅有关这些漏洞的 Redis 博客文章

Redis 社区版 7.4(2024 年 7 月)

这是 Redis 社区版 7.4 的正式发布版本。

对 7.4 新功能的更改(与 7.4 RC2 相比)

  • #13391#13438 哈希 - 单个字段的过期:RDB 文件格式更改
  • #13372哈希 - 单个字段的过期时间:重命名和修复计数expired_subkeys度量
  • #13372哈希 - 单个字段的过期时间:重命名INFOkeyspace 字段设置为subexpiry

配置参数

  • #13400添加 hide-user-data-from-log - 允许在日志文件中隐藏用户数据

Bug 修复

  • #13407SCRIPT LOAD
  • #13380修复由于无效命令上出现 OOM panic 而可能发生的崩溃
  • #13383 FUNCTION FLUSH- 改进 Lua GC 行为并修复 ASYNC 模式下的线程争用
  • #13408 HEXPIRE-like 命令应发出HDEL如果过期时间是过去的密钥空间通知

Redis 社区版 7.4-rc2(2024 年 6 月)

升级紧急度 LOW (低):这是 Redis 社区版 7.4 的第二个候选版本。

性能和资源利用率改进

  • #13296优化 CPU 缓存效率

对 7.4 新功能的更改(与 7.4 RC1 相比)

  • #13343哈希 - 单个字段的过期时间:当键不存在时 - 回复一个数组(每个字段的代码不存在)
  • #13329Hash - 单个字段的过期时间:new keyspace 事件:hexpired

模块 API - 对 7.4 新功能的潜在重大更改(与 7.4 RC1 相比)

  • #13326Hash - 单个字段的过期时间:避免从模块 API 函数调用时延迟过期

Redis 社区版 7.4-rc1(2024 年 6 月)

升级紧急度 LOW (低):这是 Redis 社区版 7.4 的第一个候选版本。

以下是此版本与 7.2.5 相比的完整更改列表。

新功能

  • #13303Hash - 单个字段的过期时间。引入了 9 个命令:
    • HEXPIREHPEXPIRE为特定字段设置剩余生存时间
    • HEXPIREATHPEXPIREAT将特定字段的过期时间设置为 UNIX 时间戳
    • HPERSIST删除特定字段的过期时间
    • HEXPIRETIMEHPEXPIRETIME获取特定字段的过期时间
    • HTTLHPTTL获取特定字段的剩余生存时间
  • #13117 XREAD:从最后一条消息开始读取的新 ID 值+
  • #12765 HSCAN:新增功能NOVALUESflag 仅报告字段名称
  • #12728 SORT,SORT_RO:允许BYGET当模式映射到与键相同的插槽时,群集模式下的选项
  • #12299 CLIENT KILL:新的可选过滤器:MAXAGE maxage- 终止早于maxage
  • #12971Lua:暴露os.clock()获取 Lua 代码执行耗时的 API
  • #13276允许SPUBLISH命令MULTI ... EXEC副本上的事务

Bug 修复

  • #12898 XREADGROUP:修复 master 和 replica 的 entries-read 不一致的问题
  • #13042 SORT ... STORE:修复创建的列表以尊重列表压缩和打包配置
  • #12817#12905 修复主线程和模块线程之间的竞争条件问题
  • #12577如果 master 所有权发生更改,则从 shard 通道的副本中取消订阅所有客户端
  • #12622 WAITAOF如果在仅将效果传播到副本而不传播到 AOF 的模块命令之后使用,则可能会超时或挂起
  • #11734 BITCOUNTBITPOS如果 key 和 illegal 参数不存在,则返回 error,而不是 0
  • #12394 BITCOUNT:在检查 key 是否存在之前检查错误的参数
  • #12961允许在内存不足时执行只读事务
  • #13274修复客户端执行 ACL 更改时自身断开连接时的崩溃
  • #13311集群:修复了在槽迁移期间因取消阻止客户端而导致的崩溃

安全性改进

  • #13108Lua:对使用EVAL行为更改 ***
  • #12961限制MULTI ... EXEC交易
  • #12860隐去 ACL 用户名信息和标记*-key-file-pass configs作为敏感

性能和资源利用率改进

  • #12838在许多客户端调用PUNSUBSCRIBE / SUNSUBSCRIBE同时
  • 编号 #12627减少醒来时的延迟WAITAOF客户端,流量不多
  • #12754优化KEYS当 pattern 包含 hashtag 并表示单个插槽时
  • #11695通过将集群元数据替换为槽特定的字典来减少内存并提高性能
  • #13087 SCRIPT FLUSH ASYNC现在不会阻塞主线程
  • #12996主动内存碎片整理效率改进
  • 排名 #12899提高重新哈希期间读取/更新作的性能
  • #12536 SCAN ... MATCH:当模式暗示群集插槽时提高性能
  • #12450 ZRANGE ... LIMIT:提高性能

其他常规改进

  • #13133Lua:使用 jemalloc 而不是 libc 分配 VM 代码,并将其计为已用内存 *** 行为更改 ***
  • #12171 ACL LOAD: 不断开所有客户端的连接 *** 行为更改 ***
  • 排名 #13020允许在运行主动碎片整理时调整碎片整理配置
  • #12949提高 avg_ttl 的准确性(平均键空间键 TTL)
  • #12977允许运行WAITAOF在脚本中
  • #12782在大多数类 Unix 系统中实施 TCP Keep-Alives
  • 编号 #12707改进了在群集模式下拒绝脚本时的错误代码
  • #12596支持XREAD ... BLOCK在脚本中;仅当它最终阻塞时才被拒绝

新指标

  • #12849 INFO:pubsub_clients- Pub/Sub 模式下的客户端数量
  • #12966 INFO:watching_clients- 正在监视 Key 的客户端数
  • #12966 INFO:total_watched_keys- 监视键的数量
  • #12476 INFO:client_query_buffer_limit_disconnections- 对客户端输入缓冲区 OOM 事件进行计数
  • #12476 INFO:client_output_buffer_limit_disconnections- 计算客户端输出缓冲区 OOM 事件
  • #12996 INFO:allocator_muzzy- 内存已返回到作系统,但仍显示为 RSS,直到作系统回收它
  • #13108 INFO:evicted_scripts- 被逐出的 eval 脚本的数量。用户可以检查它以查看他们是否在滥用 EVAL
  • #12996 MEMORY STATS:allocator.muzzy- 内存已返回到作系统,但仍显示为 RSS,直到作系统回收它
  • #12913 INFO MEMORY mem_overhead_db_hashtable_rehashing- 内存重新分片开销(仅限即将释放的内存)
  • #12913 MEMORY STATS:overhead.db.hashtable.lut- 数据库中 Dictionary 存储桶的总开销
  • #12913 MEMORY STATS:overhead.db.hashtable.rehashing- 当前正在重新哈希的数据库字典的临时内存开销
  • #12913 MEMORY STATS:db.dict.rehashing.count- 当前正在重新哈希的顶级词典的数量
  • #12966 CLIENT LIST:watch- 每个客户端当前正在监视的键数

模块 API

  • #12985新的 API 调用:RM_TryCallocRM_TryRealloc- 允许模块正常处理内存分配失败
  • 排名 #13069新的 API 调用:RM_ClusterKeySlot- 密钥将哈希到哪个 slot
  • 排名 #13069新的 API 调用:RM_ClusterCanonicalKeyNameInSlot- 获取将映射到槽的一致键
  • #12486新的 API 调用:RM_AddACLCategory- 允许模块声明新的 ACL 类别

配置参数

  • #12178新的配置参数:max-new-connections-per-cyclemax-new-tls-connections-per-cycle限制每个事件循环周期的新客户端连接数
  • 排名 #7351重命名一些 CPU 配置参数以进行样式对齐。为旧名称添加了别名以避免中断更改

CLI 工具

  • #10609 redis-cli: 新增-t <timeout>参数:指定服务器连接超时(以秒为单位)
  • #11315 redis-cli: 新增-4-6在 DNS 查找上首选 IPV4 或 IPV6 的标志
  • #12862 redis-cli:允许按向上箭头返回任何命令(包括仍未保留的敏感命令)
  • #12543 redis-cli:添加反向历史搜索(如终端中的 Ctrl+R)
  • #12826 redis-cli: 添加--keystats--keystats-samples到联合收割机--memkeys--bigkeys使用其他分布数据
  • #12735 redis-cli: 修复:--bigkeys--memkeys现在处理集群副本
  • #9411 redis-benchmark: 增加对二进制字符串的支持
  • #12986 redis-benchmark: 修复:为节点选择随机 slot 以跨 slot 分配作
为本页评分
返回顶部 ↑