支持SSL
Redis 6.0连接支持SSL,可以传输加密,更加安全,但会带来一定的性能损失
ACLs 权限控制
Redis ACL是访问控制列表( Access Control List)的缩写,它允许某些连接在可以执行的命令和可以访问的KEY方面受到限制。它的工作方式是,在连接后,客户端需要提供用户名和有效密码进行身份验证。如果身份验证成功,则连接将与给定用户和该用户的限制相关联。 该功能可以有效提高安全性。
RESP3 协议
RESP(Redis Serialization Protocol)是 Redis 服务端与客户端之间通信的协议。
RESP3 是 RESP version 2 的更新版本。RESP v2 大致从 Redis 2.0 开始支持(其实 1.2 就支持了,只不过 Redis 2.0 是第一个仅支持此协议的版本)。
RESP 2 具有如下缺陷:
- 没有足够的语义能力去表达数据结构。例如,Redis命令LRANGE、SMEMBERS和HGETALL都会返回一个数组,在RESP v2术语中称为多块回复。然而,这三个命令实际上返回一个数组、一个集合和一个映射。
- RESP缺少重要的数据类型:浮点数和布尔值分别作为字符串和整数返回。空值具有双重表示,称为空批量和空多批量,这是无用的,因为区分空数组和空字符串的语义值是不存在的。
- 无法返回二进制安全错误。在实现生成协议的通用API时,实现必须检查并删除错误字符串中潜在的换行符。
RESP 3 新增了更多的数据类型,强化了协议的可表达能力和可理解能力
客户端缓存(Client side caching)
Redis 客户端缓存在某些方面进行了重新设计。 可以执行Client相关的命令,开启客户端缓存。开启后,服务端后记住客户端连接查询的KEY。同时客户端需要订阅内部有主题, 如果一旦客户端查询的KEY发生变化,客户端会收到发生变化的信息。 由于客户端能感知到KEY的变化,因而客户端可以直接缓存KEY的值在本地内存上,而不需要担心KEY失效的问题。
多线程 IO(Threaded I/O)
Redis 6 引入多线程IO,但多线程部分只是用来处理网络数据的读写和协议解析,执行命令仍然是单线程。但带来了更加的整体性能。