十四. Redis 新功能
十四. Redis 新功能
@
1. ACL
ACL 参考官网:https://redis.io/docs/latest/operate/oss_and_stack/management/security/acl/

ACL 基本介绍:
- Redis ACL 是 Access Control List(访问控制列表) 的缩写,该功能限制可以执行的命令和可以访问的键。
- 在 Redis 5 版本之前,Redis 安全规则只有密码控制,还有通过 rename 来调整高危命令比如 flushdb,KEYS* ,shutdown 等。
- Redis 6 则提供 ACL 的功能对用户进行更细粒度的权限控制:
- 接入权限:用户名和密码
- 可以执行的命令
- 可以操作的 KEY
常用的 ACL 指令:
acl list命令展现用户权限列表
127.0.0.1:6379> acl list


acl cat命令,查看添加权限指令类型
127.0.0.1:6379> acl cat

带上参数类型名,可以查看该类型可以执行的指令
127.0.0.1:6379> acl cat string
acl whoami命令查看当前用户
127.0.0.1:6379> acl whoami

acl setuser命令创建和编辑用户 acl
acl setuser 命令创建和编辑用户 ACL


操作演示:
- 通过命令创建新用户默认权限
127.0.0.1:6379> acl setuser tom
在上面的示例钟,没有指定规则
如果用户不存在,将使用
just created的默认属性来创建用户。如果用户已经存在,则上面的命令将不执行任何操作。
- 设置有用户名,密码 ,ACL权限,并启用该用户
127.0.0.1:6379> acl setuser jack on >123456 ~cached*:* +get
指令
acl setuser jack on >123456 ~cached*:* +get
jack:用户名
on :表示启用
>123456:表示密码就是 123456
~cached:*:表示只能操作的 key是以cached:开头的
+get:表示操作的指令只能是 get127.0.0.1:6379> auth jack 123
- 给 jack 用户增加权限/删除用户
127.0.0.1:6379> acl setuser jack +set
127.0.0.1:6379> acl deluser tom
2. IO多线程
- IO多线程是指和客户端交互时,网络IO交互处理模块多线程,而非执行命令多线程。
- Redis6 执行命令依然是单线程。
- 也就是说,Redis 和客户端的交互是多线程,在执行指令的时候,仍然是单线程 + IO多路复用。
原理架构:
Redis 6 加入多线程,Redis 的多线程部分只用来处理网络数据的读写和协议解析,执行命令仍然是单线程。之所以这么设计是不想因为多线程而变得复杂,需要去控制 key ,lua,事务,LPUSH/LPOP等等的并发问题。整体的设计大致如下:

多线程 IO默认也是不开开启的,需要再配置文件 redis.conf 中配置 io-threds-do-reads yes io-threads 4 才行。

io-threads 4
io-threads-do-reads yes
3. 工具支持 Cluster
如果之前的老版本的 Redis 想要搭集群需要单独安装 ruby 环境。
Redis 5 将 redis-trib.rb 的功能集成到 redis-cli
另外官方 redis-benchmark 工具(性能测试工具,它可以模拟N个客户端同时向 Redis 发送 M条查询命令的应用场景) 开始支持 cluster模式了,通过多线程的方式对多个分片进行压测。
查看-如图:
[root@localhost rainbowsea]# redis-benchmark --help


4. 其它新功能-介绍
- RESP3 新的 Redis 通信协议:优化服务端与客户端之间通信。
- Client side caching 客户端缓存:基于 RESP3 协议实现的客户端缓存功能。为了进一步提升缓存的性能,将客户端经常访问的数据 cache 到客户端。减少 TCP 网络交互。
- Proxy 集群代理模式:Proxy 功能,让 Cluster 拥有像单例一样的接入方式,降低大家使用 cluster 的门槛。
- Modules API
Redis 6中模块API开发进展非常大,Redis 可以变成一个框架,利用 Moudles 来构建不同系统,而不需要从头开始写。Redis 一开始就是一个面向编写各种系统开放的平台。
5. 最后:
“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”
十四. Redis 新功能的更多相关文章
- Spring Boot 2.X(十四):日志功能 Logback
Logback 简介 Logback 是由 SLF4J 作者开发的新一代日志框架,用于替代 log4j. 主要特点是效率更高,架构设计够通用,适用于不同的环境. Logback 分为三个模块:logb ...
- VS2017十五项新功能体验
Visual Studio 2017十五项新功能体验 Visual Studio 2017正式已经于2017.3.7号正式发布,选在这一天发布也是为了纪念Visual Studio 二十周年.MVP ...
- Visual Studio 2017十五项新功能体验
Visual Studio 2017正式已经于2017.3.7号正式发布,选在这一天发布也是为了纪念Visual Studio 二十周年.MVP 2017技术峰会将于这个周末(3.17)在北京举办,由 ...
- Redis(八)redis新功能
redis6新功能 1 ACL Redis ACL是AccessControlList(访问控制表)的缩写,该功能允许根据可以执行的命令和访问的键来限制某些连接. 2 基本命令 acl help &g ...
- (二十四)linux新定时器:timefd及相关操作函数
timerfd是Linux为用户程序提供的一个定时器接口.这个接口基于文件描述符,通过文件描述符的可读事件进行超时通知,所以能够被用于select/poll的应用场景. 一,相关操作函数 #inclu ...
- 二十四 Redis消息订阅&事务&持久化
Redis数据类型: Redis控制5种数据类型:String,list,hash,set,sorted-set 添加数据,删除数据,获取数据,查看有多少个元素,判断元素是否存在 key通用操作 JR ...
- SpringBoot开发二十四-Redis入门以及Spring整合Redis
需求介绍 安装 Redis,熟悉 Redis 的命令以及整合Redis,在Spring 中使用Redis. 代码实现 Redis 内置了 16 个库,索引是 0-15 ,默认选择第 0 个 Redis ...
- Redis 6.0 正式版终于发布了!除了多线程还有什么新功能?
Redis 6.0.1 于 2020 年 5 月 2 日正式发布了,如 Redis 作者 antirez 所说,这是迄今为止最"企业"化的版本,也是有史以来改动最大的一个 Redi ...
- iOS11有哪些新功能?旧iPhone是否真的变慢了
1. [iOS 11] iOS 11十大实用新功能简介 2.[iOS 11] iPhone二维码扫描,通过内建相机就可以完成! 3. iOS 11内建屏幕录制功能!再也不需要通过第三方应用录屏 4. ...
- 如约而至,Java 10 正式发布! Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十四)Redis缓存正确的使用姿势 努力的孩子运气不会太差,跌宕的人生定当更加精彩 优先队列详解(转载)
如约而至,Java 10 正式发布! 3 月 20 日,Oracle 宣布 Java 10 正式发布. 官方已提供下载:http://www.oracle.com/technetwork/java ...
随机推荐
- 基于Docker搭建PHP开发环境
Docker 是这几年非常火的一项技术,作为一名软件开发人员,应该及时的接触和掌握. 镜像加速: 可以在阿里云上免费的获取,然后进行配置即可使用.阿里云 Docker 加速器,没有阿里云账号注册一个即 ...
- AtCoder Beginner Contest 152
Flatten 给定\(n\)个正整数\(a_i\),,现在让你求出\(n\)个整数\(b_i\),使得任取\(1\le i < j \le n\),\(a_ib_i=a_jb_j\)始终成立, ...
- ehcarts 实战小计-1
需求 展示未来未来36个月(等分为3个时间范围)的经济效益趋势,3个等分时间区域在趋势图上方常显,不同时间区域之间通过灰色虚线间隔开: 鼠标hover趋势图每个1/3区域,对应区域会有以下3个效果: ...
- 使用arcpy向server端发布服务
import arcpy import os # Set output file names outdir = r"D:" service = "MapImageShar ...
- windows版 nvm 1.1.7 安装(填坑)
参考https://www.jianshu.com/p/cbf4f76ba0bb安装,注意事项: 1. 最好下载Setup安装版本,带安装界面,这样可以填写安装路径以及Nodejs路径,省去了改文件的 ...
- Esxi缩小硬盘大小的办法
进虚拟机,把要缩减硬盘的那个系统,磁盘管理,收缩卷收缩了.然后关机. 本例:调整800G到350G. Esxi打开ssh,进去. cd /vmfs/volumes// datastorename,完 ...
- node + vue 实现服务端单向推送消息,利用EventSource
场景:后台系统需要实时收到电池报警消息,并语音提醒,前台不需要发送任何东西,所以想的是,服务端单向推送 1. 实现EventSource参考博客: https://www.jqhtml.com/412 ...
- 题解:P10704 救赎(Redemption)
数论题,先看数据范围,发现 $n$ 和 $m$ 都非常大,但是 $\sum_{i=1}^{i=n}a_i \le 10^9$. 解以上不等式得不同的 $a_i$ 大约有 $40000$ 个.记有 $c ...
- 虚拟机安装 Win10 ,无法启动,报错EFI Network ... Time out
问题情况 VMWare 16 安装 win10 的镜像文件,无法启动,报错 EFI Network ... Time out 解决办法 虚拟机设置中 固件类型 改用 BIOS 已解决
- Linux系统安装python3.8与卸载教程
ln -sf /usr/local/python311/bin/python3.11 /usr/local/bin/python3ln -sf /usr/local/python311/bin/pyd ...










