1.1 Redis 6.0的新特性
相比Redis 5.0,Redis 6.0增加了很多新的特性,包括SSL、ACL、RESP 3、客户端缓存、线程化I/O、副本上的无盘复制及改进的Redis CLI集群支持等。限于篇幅,这里只介绍其中几个较为重要的特性,具体细节可以参考官方文档:http://antirez.com/news/132。
1)客户端缓存在一些方面进行了重新设计,特别是弃用了缓存槽,使用键名。客户端缓存引入了广播模式。在使用广播的时候,服务器不用记住每个客户端请求的key,而只需记住客户端订阅key的前缀。每次修改匹配前缀的key时,订阅的客户端都会收到通知。此外,Redis 6.0支持“选择加入”“选择退出”模式,因此不使用广播模式的客户端可以准确地告诉服务器客户端将缓存什么,以减少无效消息的数量。无论是在低内存模式下,还是在高选择性(低带宽)模式下,这个新特性的优势都很明显。
2)增加了一种模式,即用于复制的RDB文件如果不再有用,就会立即被删除。在某些环境中,最好不要将数据存储在磁盘上,而只将数据存储在内存中。
3)引入了对ACL(Access Control List,访问控制列表)的支持。之前版本的Redis是没有用户的概念的,不能很好地控制权限。Redis 6.0开始支持用户,可以给每个用户分配不同的权限。
4)对复制协议PSYNC 2进行了改进,可以修整协议中的最终ping,可以更频繁地进行部分数据重新同步,从而使副本和母本更有可能找到共同的偏移量。
5)优化了带有超时设置的命令。例如,BLPOP命令和其他以前接受以s为单位的命令,现在都可以接受十进制数字的命令。
6)RDB文件的加载速度更快,提升了20%~30%。
7)新增STRALGO命令,实现了复杂的字符串算法。目前字符串算法采用的是LCS(Longest Common Subsequence,最长公共子序列),可以用于比较冠状病毒的RNA,以及其他生物体的DNA和RNA。