Redis 4.0
一、模块系统 Redis Modules

模块系统是Redis 4.0的最大变化, 这个系统可以让用户通过自己编写的代码来扩展和实现 Redis 本身并不具备的功能。该模块功能使得用户可以将 Redis 用作基础设施并在其上构建更多功能,这给 Redis 带来了无数新的可能性。

具体使用方法可以参考 :http://antirez.com/news/106
目前已发布的模块请浏览:http://redismodules.com

二、PSYNC2.0

新版本的 PSYNC 解决了旧版本的 Redis 在复制时的一些不够优化的地方:

在旧版本 Redis 中, 如果一个从服务器在 FAILOVER 之后成为了新的主节点, 那么其他从节点在复制这个新主的时候就必须进行全量复制。在 Redis 4.0 中, 新主和从服务器在处理这种情况时, 将在条件允许的情况下使用部分复制。
在旧版本 Redis 中, 一个从服务器如果重启了, 那么它就必须与主服务器重新进行全量复制。而在 Redis 4.0 中, 只要条件允许, 主从在处理这种情况时将使用部分复制。

三、非阻塞 DEL 、 FLUSHDB 和 FLUSHALL

在Redis4.0之前,DEL一个BIG KEY、清空一个库/实例,都会对Redis造成严重阻塞,甚至直接导致同步缓冲区溢出主从被迫重传,因此我们只能选择迂回的遍历式清理策略,非常麻烦并且耗时过长。
从Redis4.0开始新增了UNLINK命令,该命令能够对BIG KEY进行非阻塞式缓慢清理,同时对FLUSH命令增加了参数来实现同样的效果。

四、从库开始主动淘汰过期数据

现在开始,从库能够主动对已过期的数据进行淘汰,再也无需担心在从库读到本应过期的脏数据。

五、混合持久化RDB-AOF

新的混合持久化方案改造了aof文件,其头部为RDB格式,增量日志以原始的aof方式记录,日志体积更小,加载速度更快!

六、缓存驱逐策略优化

新增了LFU缓存驱逐策略,另外,从Redis4.0开始,驱逐变得更加精确。

七、数据库交换命令 SWAPDB

不小心使用了db1而想把所有数据切换到db0,无需重导数据,SWAPDB命令可以轻松帮你实现。

八、内存分析命令 MEMORY

能够更清晰、直观的查看整个Redis实例的内存使用情况,也允许对某个KEY的内存占用进行评估。
例如可以使用 MEMORY USAGE 子命令估算储存给定键所需的内存,用 MEMORY STATS 子命令查看 Redis 当前的内存详细使用情况等。