前言
Redis 6 RC2 于今年3月5号Release,预计今年4.30月份发布GA版本,官方网站提供 unstable 版本的供大家测试,本文基于官方文档介绍Redis 6的重要的新特性。
作者对新特性的介绍 http://antirez.com/news/131
ACL
在Redis 5版本之前,Redis 安全规则只有密码控制 还有通过rename 来调整高危命令比如 flushdb
, KEYS*
, shutdown
等。Redis 6 则提供ACL的功能对用户进行更细粒度的权限控制 :
(1)接入权限:用户名和密码(2)可以执行的命令(3)可以操作的 KEY
ACL 的用法
创建用户
127.0.0.1:6379> ACL SETUSER yangyi ##创建一个账号yangyi
创建一个账号 alice 设置密码并能只能使用 get命令访问 cached前缀的key
> AUTH alice p1pp0
更详细的介绍 请移步
RESP3:新的 Redis 通信协议
RESP 全称 REdisSerializationProtocol
,是 Redis 服务端与客户端之间通信的协议。
在 RESP2 中,所有的返回给客户端的内容都是字符串数组的形式,不管是 list 还是 sorted set。因此客户端需要自行去根据类型进行解析,这样会增加了客户端实现的复杂性。
Redis 6 开始在兼容 RESP2 的基础上,开始支持 RESP3。新的协议具体带来哪些变化呢? show me the code
详细的信息请移步
Client side caching
基于 RESP3 协议实现的客户端缓存功能。为了进一步提升缓存的性能,将客户端经常访问的数据cache到客户端。减少TCP网络交互,提升RT。不过该特性目前合并到了unstable 分支,作者说等6.0 正式GA之前,还要修改很多。我只能说 拭目以待。
推荐一篇中文blog,比较详细介绍了 客户端缓存的设计思路和遇到的各种问题,以及使用的具体场景。
IO多线程
对 Redis 比较熟悉的朋友 一看到这个多线程是不是很开心?不过不能开心太早。IO多线程其实指客户端交互部分的网络IO交互处理模块多线程,而非执行命令多线程。作者不想将执行命令多线程是因为要避免复杂性、锁的效率低下等等。此次支持IO多线程的设计大体如下:
图片来自👇的公众号文章
对该特性比较详细的介绍 请移步 正式支持多线程!Redis 6.0与老版性能对比评测
Proxy
antirez开发了 Proxy 功能,让 Cluster 拥有像单实例一样的接入方式,降低大家使用cluster的门槛。不过需要注意的是代理不改变 Cluster 的功能限制,不支持的命令还是不会支持,比如跨 slot 的多Key操作。
工具支持 Cluster
其实这部分没有特别突出的变化,Redis 5 将 redis-trib.rb
的功能集成到 redis-cli
。另外官方 redis-benchmark
工具开始支持 cluster
模式了,通过多线程的方式对多个分片进行压测。
Modules API
Redis 6中模块API开发进展非常大,因为Redis Labs为了开发复杂的功能,从一开始就用上Redis模块。Redis可以变成一个框架,利用Modules来构建不同系统,而不需要从头开始写然后还要BSD许可。Redis一开始就是一个向编写各种系统开放的平台。
Disque
Disque作为一个Redis Module使用足以展示Redis的模块系统的强大。集群消息总线API、屏蔽和回复客户端、计时器、模块数据的AOF和RDB等等。如果你不知道Disque,看一下repo的README就足够了。
小结
本文挑选了比较重要的 Redis 6的新功能和特性做了介绍,要全面的了解Redis 6 的进展情况可以关注作者的blog http://antirez.com/
获取更实时的信息。
P.S. 文章大量参考,翻译了作者的文章。如有不妥,望见谅。
推荐阅读
-The End-
本公众号长期关注于数据库技术以及性能优化,故障案例分析,数据库运维技术知识分享,个人成长和自我管理等主题,欢迎扫码关注。
由叶老师主讲的知数堂「MySQL优化课」第17期已发车,课程从第15期就升级成MySQL 8.0版本了,现在上车刚刚好,扫码开启MySQL 8.0的修行之旅吧。
另外,叶老师在腾讯课堂的短课程《MySQL性能优化》已开课,本课程讲解读几个MySQL性能优化的核心要素:合理利用索引,降低锁影响,提高事务并发度。
下面是报名小程序码
点“在看”给我一朵小黄花
本文分享自微信公众号 - 老叶茶馆(iMySQL_WX)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。