Redis已经推出到7.0,你的公司现在在用哪个版本?
我们一起来看一下各个版本的Redis都增加了哪些新特性。
Redis2.6(2012)
① 服务端支持Lua脚本。
② 去掉虚拟内存相关功能。
③ 放开对客户端连接数的硬编码限制。
④ 键的过期时间支持毫秒。
⑤ 从节点支持只读功能。
⑥ 两个新的位图命令:bitcount和bitop。
⑦ 增强了redis-benchmark的功能:支持定制化的压测,CSV输出等功能。
⑧ 基于浮点数自增命令:incrbyfloat和hincrbyfloat。
⑨ redis-cli可以使用–eval参数实现Lua脚本执行。
⑩ shutdown命令增强。
⑪ 重构了大量的核心代码,所有集群相关的代码都去掉了,cluster功能将会是3.0版本最大的亮点。
⑫ info可以按照section输出,并且添加了一些统计项
⑬ sort命令优化
Redis2.8(2013-11-23)
① 添加部分主从复制的功能,在一定程度上降低了由于网络问题,造成频繁全量复制生成RDB对系统造成的压力。
② 尝试性的支持IPv6.
③ 可以通过config set命令设置maxclients。
④ 可以用bind命令绑定多个IP地址。
⑤ Redis设置了明显的进程名,方便使用ps命令查看系统进程。
⑥ config rewrite命令可以将config set持久化到Redis配置文件中。
⑦ 发布订阅添加了pubsub。
⑧ Redis Sentinel第二版,相比于Redis2.6的Redis Sentinel,此版本已经变成生产可用。
Redis3.0(2015-04-01里程碑)
① Redis Cluster:Redis的官方分布式实现。
② 全新的embedded string对象编码结果,优化小对象内存访问,在特定的工作负载下载速度大幅 提升。
③ Iru算法大幅提升。
④ migrate连接缓存,大幅提升键迁移的速度。
⑤ migrate命令两个新的参数copy和replace。
⑥ 新的client pause命令,在指定时间内停止处理客户端请求。
⑦ bitcount命令性能提升。
⑧ cinfig set设置maxmemory时候可以设置不同的单位(之前只能是字节)。
⑨ Redis日志小做调整:日志中会反应当前实例的角色(master或者slave)。
⑩ incr命令性能提升。
Redis3.2(2016-05-06)
① 添加GEO相关功能。
② SDS在速度和节省空间上都做了优化。
③ 支持用upstart或者systemd管理Redis进程。
④ 新的List编码类型:quicklist。
⑤ 从节点读取过期数据保证一致性。
⑥ 添加了hstrlen命令。
⑦ 增强了debug命令,支持了更多的参数。
⑧ Lua脚本功能增强。
⑨ 添加了Lua Debugger。
⑩ config set 支持更多的配置参数。
⑪ 优化了Redis崩溃后的相关报告。
⑫ 新的RDB格式,但是仍然兼容旧的RDB。
⑬ 加速RDB的加载速度。
⑭ spop命令支持个数参数。
⑮ cluster nodes命令得到加速。
⑯ Jemalloc更新到4.0.3版本。
Redis4.0(2017-07-15)
① 提供了模块系统,方便第三方开发者拓展Redis的功能。
② PSYNC2.0:优化了之前版本中,主从节点切换必然引起全量复制的问题。
③ 提供了新的缓存剔除算法:LFU(Last Frequently Used),并对已有算法进行了优化。
④ 提供了非阻塞del和flushall/flushdb功能,有效解决删除了bigkey可能造成的Redis阻塞。
⑤ 提供了memory命令,实现对内存更为全面的监控统计。
⑥ 提供了交互数据库功能,实现Redis内部数据库的数据置换。
⑦ 提供了RDB-AOF混合持久化格式,充分利用了AOF和RDB各自优势。
⑧ Redis Cluster 兼容NAT和Docker。
Redis5.0(2018-10-18)
① 新的Stream数据类型。
② 新的Redis模块API:Timers and Cluster API。
③ RDB现在存储LFU和LRU信息。
④ 集群管理器从Ruby(redis-trib.rb)移植到C代码。可以在redis-cli中。查看 redis-cli —cluster help`了解更多信息。
⑤ 新sorted set命令:ZPOPMIN / MAX和阻塞变量。
⑥ 主动碎片整理V2。
⑦ 增强HyperLogLog实现。
⑧ 更好的内存统计报告。
⑨ 许多带有子命令的命令现在都有一个HELP子命令。
⑩ 客户经常连接和断开连接时性能更好。
⑪ 错误修复和改进。
⑫ Jemalloc升级到5.1版
Redis6.0(2020-08-27)
① 许多新的模块API。
② 更好过期算法。
③ SSL支持。
④ ACL支持。
⑤ 新的RESP3协议。
⑥ 客户端缓存。
⑦ 多线程I/O
⑧ 副本的无盘复制。
⑨ redis-benchmark支持和redis-cli改进。
⑩ Systemd 支持重写。
⑪ redis集群代理的发布(还不稳定,不建议生产使用)。
⑫ disque模块的发布
Redis7.0
① 新增Function自定义函数库,函数库支持持久化与可复制。
② Lua脚本(脚本本身代码)不再支持持久化和复制,仅对命令执行结果进行持久化和复制。
③ ACL支持对Pub/Sub channel的权限控制。
④ 支持Multi-Part AOF。
⑤ 支持Client-Eviction。
⑥ 支持Sharded-Pub/Sub。
⑦ 支持命令执行耗时直方图。
⑧ 支持子命令级别的性能统计。
⑨ Ziplist编码替换为Listpack编码。
⑩ 支持Global Replication Buffer。