Redis 4.0 与 Redis 5.0 改进

Redis 4.0.0

Redis 4.0.0 正式发布,这是 Redis 4.0 系列的首个稳定版,包含以下的一些重大改进:模块化的系统、更好的复制 (PSYNC2)、对 eviction policies, threaded DEL/FLUSH 的改进、混合 RDB+AOF 格式、对 Raspberry Pi 的支持作为主要平台、新的 MEMORY 命令行、Redis Cluster 对 Nat/Docker 的支持、更快的 Redis Cluster 键创建,以及许多其他较小的功能和一些行为修复等。

与之前的 RC 相比,有一些错误修复和改进,主要是:

  • 针对新的复制引擎 PSYNC2 的修复

  • 引入了模块线程安全上下文(Modules thread safe contexts),现在还是一个实验性的 API,但是当需要时,该 API 被认为是稳定和可用的

  • SLOWLOG 现在会记录 offending 的客户端名字和地址。要注意的是,这是对于向后兼容性的破坏,以防旧代码会判断 slowlog 条目由三个条目组成。

  • 模块原生数据类型 RDB 格式已更改

  • AOF 检查程序现在可以处理 RDB preambles

  • 添加了不支持 STORE 选项的 GEORADIUS_RO 和 GEORADIUSBYMEMBER_RO 变体,为了允许这种查询的只读扩容

  • HSET 现在是可变的,HMSET 被认为是弃用的(但将来会支持)。新的代码中请使用 HSET

  • GEORADIUS huge radius (>= ~6000 km) corner cases fixed, certain elements near the edges were not returned.

  • 添加 DEBUG DIGEST 模块 API

  • HyperLogLog 命令不再在某些输入的字符串中(非 HLL)崩溃

  • 修复在 MULTI/EXEC blocks 中的 SLAVEOF

  • 其他许多小的 bug 修复和改进

详情请参阅发布说明

 

Redis 5.0.0

先看一下 Redis 5 带来的更新内容:

1. 新的流数据类型(Stream data type) https://redis.io/topics/streams-intro
2. 新的 Redis 模块 API:定时器、集群和字典 API(Timers, Cluster and Dictionary APIs)
3. RDB 现在可存储 LFU 和 LRU 信息
4. redis-cli 中的集群管理器从 Ruby (redis-trib.rb) 移植到了 C 语言代码。执行 `redis-cli --cluster help` 命令以了解更多信息
5. 新的有序集合(sorted set)命令:ZPOPMIN/MAX 和阻塞变体(blocking variants)
6. 升级 Active defragmentation 至 v2 版本
7. 增强 HyperLogLog 的实现
8. 更好的内存统计报告
9. 许多包含子命令的命令现在都有一个 HELP 子命令
10. 客户端频繁连接和断开连接时,性能表现更好
11. 许多错误修复和其他方面的改进
12. 升级 Jemalloc 至 5.1 版本
13. 引入 CLIENT UNBLOCK 和 CLIENT ID
14. 新增 LOLWUT 命令 http://antirez.com/news/123
15. 在不存在需要保持向后兼容性的地方,弃用 "slave" 术语
16. 网络层中的差异优化
17. Lua 相关的改进:

    - 将 Lua 脚本更好地传播到 replicas / AOF
    - Lua 脚本现在可以超时并在副本中进入 -BUSY 状态

18. 引入动态的 HZ(Dynamic HZ) 以平衡空闲 CPU 使用率和响应性
19. 对 Redis 核心代码进行了重构并在许多方面进行了改进

Redis 5 是 Redis 引入流数据类型(Stream data type)的第一个版本。按照官方的说法,不使用该特性的用户在生产环境中使用 Redis 5 会有更好的体验 —— 虽然开发团队尚未发现关于这项特性的关键错误。此外,因为许多内部结构与 Redis 4 共享,因此在内部工作方式方面,变化不会很大。

你可能感兴趣的:(Redis)