Redis6.x新特性

多线程IO

redis 6.x提供了多线程的支持,redis 6 以前的版本,严格来说也是多线程,只不过执行用户命令的请求时单线程模型,还有一些线程用来执行后台任务, 比如unlink删除 大key,rdb持久化等。
redis 6.x提供了多线程的读写IO,但是最终执行用户命令的线程依然是单线程的,这样就没有多线程数据的竞争关系,依然很高效。

客户端缓存

redis 6 提供了服务端追踪key的变化,客户端缓存数据的特性,可以减少网络通信次数

RESP3协议

RESP(Redis Serialization Protocol)是 Redis 服务端与客户端之间通信的协议。Redis 5 使用的是 RESP2,而 Redis 6 开始在兼容 RESP2 的基础上,开始支持 RESP3。
推出RESP3的目的:
- 希望能为客户端提供更多的语义化响应,以开发使用旧协议难以实现的功能
- 实现 Client-side-caching(客户端缓存)功能

提升了RDB日志加载速度

根据文件的实际组成(较大或较小的值),可以预期20/30%的改进。当有很多客户机连接时,信息也更快了,这是一个老问题,现在终于解决了。

Redis集群代理模块Redis Cluster proxy

在Redis集群中,客户端会非常分散,现在为此引入了一个集群代理,可以为客户端抽象 Redis 群集,使其像正在与单个实例进行对话一样。同时在简单且客户端仅使用简单命令和功能时执行多路复用。

image-20210512-1

ACL权限控制

Redis6版本推出了ACL(Access Control List)访问控制权限的功能,基于此功能,我们可以设置多个用户,并且给每个用户单独设置命令权限和数据权限.