Redis 版本的命名规则:版本号第二位如果是奇数,则为非稳定版本(例如2.7、2.9、3.1等),如果是偶数,则为稳定版本(例如2.6、2.8、3.0、3.2等)
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 在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在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版本。
在2017年7月14日正式发布
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 相关的改进:
18.引入动态的 HZ(Dynamic HZ) 以平衡空闲 CPU 使用率和响应性
19.对 Redis 核心代码进行了重构并在许多方面进行了改进