Redis 版本的命名规则:版本号第二位如果是奇数,则为非稳定版本(例如2.7、2.9、3.1等),如果是偶数,则为稳定版本(例如2.6、2.8、3.0、3.2等)
Redis2.8
Redis2.8在2013年11月22日正式发布,经历了24个版本,到2.8.24版本,相比于Redis2.6,主要特性如下:
1.添加部分主从复制的功能,在一定程度上降低了由于网络问题,造成频繁全量复制生成RDB对系统造成的压力。
2.尝试性的支持IPv6.
3.可以通过config set命令设置maxclients。
4.可以用bind命令绑定多个IP地址。
5.Redis设置了明显的进程名,方便使用ps命令查看系统进程。
6.config rewrite命令可以将config set持久化到Redis配置文件中。
7.发布订阅添加了pubsub。
8.发布Redis Sentinel第二版,相比于Redis2.6的Redis Sentinel,此版本已经变成生产可用。
9.如果没有足够的slave节点,master可以拒绝写入请求
10.CONFIG SET maxclients 现在可用。
11.崩溃时自动检查内存。
12.更好的Lua脚本错误报告。
13.SDIFF性能得到改善。
Redis3.0
Redis3.0 在2015年4月1日正式发布,相比于Redis2.8主要特性如下:
1.Redis Cluster:Redis的官方分布式实现。
2.全新的embedded string对象编码结果,优化小对象内存访问,在特定的工作负载下载速度大幅提升。
3.Iru算法大幅提升。
4.migrate连接缓存,大幅提升键迁移的速度。
5.migrate命令两个新的参数copy和replace。
6.新的client pause命令,在指定时间内停止处理客户端请求。
7.bitcount命令性能提升。
8.cinfig set设置maxmemory时候可以设置不同的单位(之前只能是字节)。
9.Redis日志小做调整:日志中会反应当前实例的角色(master或者slave)。
10.incr命令性能提升。
Redis3.2
Redis3.2在2016年5月6日正式发布,相比于Redis3.0主要特征如下:
1.添加GEO相关功能。
2.SDS在速度和节省空间上都做了优化。
3.支持用upstart或者systemd管理Redis进程。
4.新的List编码类型:quicklist。
5.从节点读取过期数据保证一致性。
6.添加了hstrlen命令。
7.增强了debug命令,支持了更多的参数。
8.Lua脚本功能增强。
9.添加了Lua Debugger。
10.config set 支持更多的配置参数。
11.优化了Redis崩溃后的相关报告。
12.新的RDB格式,但是仍然兼容旧的RDB。
13.加速RDB的加载速度。
14.spop命令支持个数参数。
15.cluster nodes命令得到加速。
16.Jemalloc更新到4.0.3版本。
Redis 4.0
在2017年7月14日正式发布
- 针对新的复制引擎 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
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 核心代码进行了重构并在许多方面进行了改进