美文网首页
redis 版本命名规则及变化内容

redis 版本命名规则及变化内容

作者: 饱饱想要灵感 | 来源:发表于2023-10-10 09:49 被阅读0次

    Redis借鉴了Linux操作系统对于版本号的命名规则:版本号第二位如果是奇数,则为非稳定版本(例如2.7、2.9、3.1),如果是偶数,则为稳定版本(例如2.6、2.8、3.0、3.2)。
    当前奇数版本就是下一个稳定版本的开发版本,例如2.9版本是3.0版本的开发版本。所以我们在 生产环境通常选取偶数版本的Redis

    1.Redis2.6
    1)服务端支持Lua脚本。
    2)去掉虚拟内存相关功能。
    3)放开对客户端连接数的硬编码限制。
    4)键的过期时间支持毫秒。
    5)从节点提供只读功能。
    6)两个新的位图命令:bitcount和bitop。
    7)增强了redis-benchmark的功能:支持定制化的压测,CSV输出等功能。
    8)基于浮点数自增命令:incrbyfloat和hincrbyfloat。
    9)redis-cli可以使用--eval参数实现Lua脚本执行。
    10)shutdown命令增强。
    11)info可以按照section输出,并且添加了一些统计项。
    12)重构了大量的核心代码,所有集群相关的代码都去掉了,cluster功能将会是3.0版本最大的亮点。
    13)sort命令优化。

    2.Redis2.8
    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,此版本已经变成生产可用。

    3.Redis3.0
    Redis3.0在2015年4月1日正式发布,相比于Redis2.8主要特性如下:
    注意
    Redis3.0最大的改动就是添加Redis的分布式实现Redis Cluster,填补了
    Redis官方没有分布式实现的空白。Redis Cluster经历了4年才正式发布也是
    有原因的,具体可以参考Redis Cluster的开发日志
    http://antirez.com/news/79)。
    1)Redis Cluster:Redis的官方分布式实现。
    2)全新的embedded string对象编码结果,优化小对象内存访问,在特定的工作负载下速度大幅提升。
    3)lru算法大幅提升。
    4)migrate连接缓存,大幅提升键迁移的速度。
    5)migrate命令两个新的参数copy和replace。
    6)新的client pause命令,在指定时间内停止处理客户端请求。
    7)bitcount命令性能提升。
    8)config set设置maxmemory时候可以设置不同的单位(之前只能是字节),例如config set maxmemory 1gb。
    9)Redis日志小做调整:日志中会反应当前实例的角色(master或者slave)。
    10)incr命令性能提升。

    4.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版本。(内存分配器)

    5.Redis4.0
    1)提供了模块系统,方便第三方开发者拓展Redis的功能,更多模块详见:http://redismodules.com
    2)PSYNC2.0:优化了之前版本中,主从节点切换必然引起全量复制的问题。
    3)提供了新的缓存剔除算法:LFU(Last Frequently Used),并对已有算法进行了优化。
    4)提供了非阻塞del和flushall/flushdb功能,有效解决删除bigkey可能造成的Redis阻塞。
    5)提供了RDB-AOF混合持久化格式,充分利用了AOF和RDB各自优势。
    6)提供memory命令,实现对内存更为全面的监控统计。
    7)提供了交互数据库功能,实现Redis内部数据库之间的数据置换。
    8)Redis Cluster兼容NAT和Docker。

    6.Redis5.0
    1.新的Stream数据类型。
    2.新的 Redis 模块 API:定时器、集群和字典 API(Timers, Cluster and Dictionary APIs)
    3.RDB 现在可存储 LFU 和 LRU 信息
    4.集群管理器从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.引入 Dynamic HZ 平衡CPU空闲时的使用率和响应性
    19.重构了Redis 核心代码,并进行多方面改进

    Redis6
    1.ACL权限管控(包括ACL LOG)
    2.客户端缓冲(Client side caching)
    3.多线程 IO(Threaded I/O)
    4.Redis集群代理
    5.过期策略优化
    6.Disque基于redis的消息队列工具

    相关文章

      网友评论

          本文标题:redis 版本命名规则及变化内容

          本文链接:https://www.haomeiwen.com/subject/dqehvdtx.html