【Redis系列】Redis发布版本历史及特性

在这里插入图片描述

概述

Redis 使用标准版本标记进行版本控制:major.minor.patchlevel。

偶数的版本号表示稳定的版本, 例如 1.2,2.0,2.2,2.4,2.6,2.8。

奇数的版本号用来表示非标准版本,例如2.9.x是非稳定版本,它的稳定版本是3.0。

官网下载地址:https://redis.io/download/

Redis2.6

Redis2.6在2012年正式发布,经历了17个版本,到2.6.17版本,相比于Redis2.4,主要特性如下:

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命令优化。

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

Redis3.0

Redis3.0在2015年4月1日正式发布,截止到本书完成已经到3.0.7版本,相比于Redis2.8主要特性如下:

Redis3.0最大的改动就是添加Redis的分布式实现Redis Cluster,填补了Redis官方没有分布式实现的空白。Redis Cluster经历了4年才正式发布也是有原因的,具体可以参考Redis Cluster的开发日志

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
maxmemory1gb。

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版本。

Redis4.0

可能出乎很多人的意料,Redis3.2之后的版本是4.0,而不是3.4、3.6、3.8。一般这种重大版本号的升级也意味着软件或者工具本身发生了重大变革,直到本书截稿前,Redis发布了4.0-RC2,下面列出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。

Redis5.0

Redis 5.0在2018年10月正式发布,相比于Redis4.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) 集群管理器从 Ruby (redis-trib.rb) 移植到了redis-cli 中的 C 语言代码

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 核心代码进行了重构并在许多方面进行了改进

Redis6.0

Redis 6.0在2020年5月正式发布,相比于Redis5.0主要特征如下:

1)ACL权限管控(包括ACL LOG)

2)客户端缓冲(Client side caching)

3)多线程 IO(Threaded I/O)

4)Redis集群代理

5)支持linux/bsd系统的CPU和线程(包括子线程如aof\rdb\IO线程)亲和力绑定

6)过期Key回收优化,新增主动配置参数

7)Resp3协议,兼容Resp2并更加简单、高效

8)优化了INFO命令,使之执行更快,优化了所有的阻塞命令,复杂度从O(n)到O(1),RDB加载速度优化,集群Slots命令优化,Psync2优化,修复了5.0的链式复制不一致问题。defrag优化,从试验版到正式版

9)新的module API

10)disque消息队列模块(module)

11)新增配置使Del命令如unlink执行

12)XINFO STREAM FULL流命令

13)CLIENT KILL USER username命令

14)全面支持SSL协议、并新增TSL协议

15)Redis-benchmark支持集群模式

16)重写 Systemd 支持

17)新增配置参数来删除用于在非持久性实例中进行复制的RDB文件

18)无磁盘复制副本(Diskless replication on replicas),从测试版优化,目前无磁盘复制在load
rdb仍是测试版。

Redis7.0

Redis 7.0 RC1 于 2022 年 1 月 31 日发布,主要特性如下

1)Redis 函数:使用服务器端脚本扩展 Redis 的新方法

2) ACL:细粒度的基于密钥的权限,允许用户支持多个带有选择器的命令规则集

3) 集群:分片(特定于节点)发布/订阅支持
https://redis.io/topics/pubsub#sharded-pubsub

4) 在大多数情况下对子命令的一流处理

5) 命令元数据和文档 [https://redis.io/commands/command-docs,
https://redis.io/topics/command-tips](https://redis.io/commands/command-docs, https://redis.io/topics/command-tips)

6)命令键规格。一种更好的方式让客户找到关键论点及其读/写目的
https://redis.io/topics/key-specs
7)多部分 AOF 机制避免 AOF 重写开销

8)集群:支持主机名,而不仅仅是 IP 地址

9)改进了对网络缓冲区消耗的内存的管理,以及一个选项当总内存超过限制时删除客户端

10)Cluster:一种断开集群总线连接的机制,以防止不受控制的缓冲区增长

11)AOF:时间戳注释和对时间点恢复的支持

12)Lua:支持 EVAL
脚本中的函数标志https://redis.io/topics/eval-intro#eval-flags

13)Lua: 支持 Verbatim 和 Big-Number 类型的 RESP3 回复

14)Lua: 通过 redis.REDIS_VERSION, redis.REDIS_VERSION_NUM 获取 Redis 版本

在这里插入图片描述

点赞 收藏 关注
人生如梦,一樽还酹江月

  • 17
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 21
    评论
### 回答1: 《Redis核心原理与实践PDF》是一本介绍Redis的核心原理和实践的电子书,该书以清晰易懂的方式详细阐述了Redis的运作原理和实际应用。 首先,该书从Redis的基本概念入手,介绍了Redis的主要特性和优势。接着,它详细讲解了Redis的数据结构,包括字符串、哈希、列表、集合和有序集合等,以及如何进行数据的存取、更新和查询等操作。同时,书中还涉及了Redis的内存管理和持久化机制,让读者了解到如何通过合理的配置来提高Redis的性能和稳定性。 此外,该书还介绍了Redis的高级功能与实践,让读者能够更好地利用Redis解决实际问题。例如,它提供了关于分布式锁、消息队列、缓存、计数器和推荐系统等方面的实践案例和最佳实践。通过这些案例,读者可以了解到如何在实际项目中灵活应用Redis,提高系统的性能和吞吐量。 总之,《Redis核心原理与实践PDF》是一本对于Redis的深入介绍和实践指南。无论是对于Redis的初学者还是有一定经验的开发者来说,该书都具有很高的价值。通过学习该书,读者可以全面了解Redis的核心原理和基本操作,并且能够通过实际示例掌握如何高效地使用Redis解决实际问题。 ### 回答2: Redis核心原理与实践是一本介绍Redis数据库的书籍。Redis是一种基于内存的数据存储以及高性能的Key-Value数据库,广泛应用于缓存、队列、计数器等场景。 该书首先介绍了Redis的发展历史和应用场景,然后详细解释了Redis的核心原理和运行机制。Redis采用单线程的方式处理客户端请求,但通过异步的方式处理IO操作,以此来保证高并发和高性能。同时,Redis支持多种数据结构,如字符串、哈希表、列表、集合和有序集合,并通过各种命令操作这些数据结构。 除了核心原理,该书还介绍了Redis在实践中的一些技巧和最佳实践。例如,如何合理设置过期时间、如何选取合适的数据结构、如何通过持久化机制保证数据的可靠性等等。同时,该书还介绍了Redis的集群化部署和高可用架构等相关内容。 此外,该书还介绍了一些与Redis相关的工具和技术,例如Sentinel、Cluster、Lua脚本编程等。这些工具和技术可以帮助我们更好地利用Redis来构建可靠性高、性能优越的分布式系统。 总之,《Redis核心原理与实践》这本书通过深入浅出的方式,系统地介绍了Redis的核心原理和实践经验,对于理解和应用Redis数据库具有很大帮助。无论是对Redis感兴趣的初学者,还是有一定经验的开发人员,都能够从这本书中获得自己所需要的知识和技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三省同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值