Redis 4.0-rc1 发布了,这是 4.0 的首个 RC 版。Redis 是一个高性能的key-value数据库。Redis 的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。
以下是该版本发布值得关注的内容: 主要特点
Redis模块化系统.Redis现在允许开发人员编写可以扩展Redis功能并实现新数据类型的模块。模块API实现了一个完整的抽象层,将Redis核心与模块实现分离开来,允许不同版本的Redis加载相同的模块,而无需修改。有关详细信息,请参阅模块文档:https://github.com/antirez/redis/blob/unstable/src/modules/INTRO.md
部分复制(PSYNC)版本2.复制协议被增强(以向后兼容的方式,使得4.0仍然可以作为较旧实例的从属),以便能够在不可能的情况下部分地重新同步从设备和主设备过去:在主交换机之后,由于故障转移和从实例被重新启动。即使主设备变成从设备通常也能够与新主设备部分重新同步,如果新主设备是旧主实例的从设备。链接从属(子从属)的复制工作方式现在非常不同,每个从属接收由顶级主控生成的同一复制流。
缓存淘汰算法改进.Redis 4.0实现了LFU(Least Frequently Used)作为新的驱逐算法,提高了现有算法的功能,性能和精度。此博客包含有关更改的信息:http://antirez.com/news/109
键的异步释放.Redis现在能够在不同线程的后台删除键而不阻塞服务器。新的UNLINK命令与“DEL”命令相同,但是以非阻塞的方式工作。类似地,为了使整个数据集或单个数据库被异步释放,在FLUSHALL和FLUSHDB中添加了一个“ASYNC”选项。
混合RDB-AOF格式。如果在重写AOF文件时启用了新格式:重写使用更紧凑和更快速的生成RDB格式,并将AOF流附加到文件。这允许在使用AOF持久性时更快的重写和重新加载。
新的内存监控命令,能够执行不同类型的内存分析:内存问题的故障排除(使用MEMORY DOCTOR,类似于LATENCY DOCTOR),报告单个键使用的内存量,更深入地报告Redis内存用法与INFO命令提供的相比。
Redis集群对NAT / Docker的支持。为了强制集群实例向集群的其余部分通告特定的IP地址,客户端和总线端口集合,不管自动检测到IP是否有新的功能。这需要总线协议更改,这将强制用户批量重新启动Redis 3.2安装的所有节点,以升级到4.0。
增益取决于存储的数据集的种类。
较小的功能
RDB文件检查实用程序现在使用与Redis本身使用的代码库相同的代码库,以便将RDB文件加载到内存中。RDB格式支持64位长度,二进制排序集分数等。
SWAPDB命令:完全立即(无延迟)替换两个Redis数据库的能力。
改进`dict.c',Redis哈希表实现。
安全改进将POST和Host:命令映射到QUIT,以防止跨协议脚本攻击。
RPUSHX和LPUSHX现在接受可变数量的元素。
报告在INFO输出中写入时使用的附加内存。
Redis的许多核心部分的严重重构。
发布主页和相关链接
下载地址
Source code (zip)
Source code (tar.gz)
https://redis.io/download