Redis新功能

Redis 新功能

ACL

参考官网:redis.io/topics/acl

基本介绍

1、Redis ACL 是Access Control List(访问控制列表)的缩写,该功能根据可以执行的命令和可以访问的键来限制某些连接

2、在Redis 5 版本之前,Redis 安全规则只有密码控制还有通过rename 来调整高危命令比如flushdb , KEYS* , shutdown 等

Redis 6 则提供ACL 的功能对用户进行更细粒度的权限控制:

  • 接入权限:用户名和密码

  • 可以执行的命令

  • 可以操作的KEY

常用指令

acl cat 命令

  1. 查看添加权限指令类别
  1. 带上参数类型名, 可以查看该类型可以执行的指令
  1. acl whoami 命令查看当前用户

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

  1. ACL 规则说明
  1. 通过命令创建新用户默认权限
  • 在上面的示例中,没有指定规则

  • 如果用户不存在,将使用just created 的默认属性来创建用户

  • 如果用户已经存在,则上面的命令将不执行任何操作

  1. 设置有用户名、密码、ACL 权限、并启用的用户

指令: acl setuser jack on >password ~cached:* +get

jack: 用户名

on : 表示启用

password : 表示密码就是password 这个可以自己指定

~cached:* : 表示操作的key 是以cached: 开头的 这个可以自己指定

+get : 表示操作的指令只能是get 这个也可以自己决定权限

  1. 切换用户,验证权限

给jack 用户增加权限

IO 多线程

简介

  1. Redis6 支撑多线程了,告别单线程了吗?
  2. IO 多线程指和客户端交互使用的是, 网络IO 交互处理模块多线程,而非执行命令多线程
  3. Redis6 执行命令依然是单线程
  4. 也就是说, Redis 和客户端的交互是多线程, 在执行指令的时候, 仍然是单线程+IO 多路复用

原理架构

Redis 6 加入多线程, Redis 的多线程部分只是用来处理网络数据的读写和协议解析,执行命令仍然是单线程。之所以这么设计是不想因为多线程而变得复杂,需要去控制key、lua、事务,LPUSH/LPOP 等等的并发问题。整体的设计大体如下

多线程IO 默认也是不开启的

需要再配置文件redis.conf 中配置

io-threads-do-reads yes

io-threads 4

工具支持Cluster

介绍

  1. 之前老版Redis 想要搭集群需要单独安装ruby 环境
  2. Redis 5 将redis-trib.rb 的功能集成到redis-cli
  3. 另外官方redis-benchmark 工具开始支持cluster 模式了, 通过多线程的方式对多个分片进行压测

查看-如图

其它新功能-介绍

1、RESP3

新的Redis 通信协议:优化服务端与客户端之间通信

2、Client side caching 客户端缓存:

基于RESP3 协议实现的客户端缓存功能。为了进一步提升缓存的性能,将客户端经常访问的数据cache 到客户端。减少TCP 网络交互

3、Proxy 集群代理模式:

Proxy 功能,让Cluster 拥有像单实例一样的接入方式,降低大家使用cluster 的门槛。不过需要注意的是代理不改变Cluster 的功能限制,不支持的命令还是不会支持,比如跨slot 的多Key 操作。

4、Modules API Redis 6 中模块API 开发进展非常大,Redis 可以变成一个框架,利用Modules 来构建不同系统,而不需要从头开始写。Redis 一开始就是一个面向编写各种系统开放的平台。

相关推荐
鼠鼠我捏,要死了捏2 小时前
深入解析Java NIO多路复用原理与性能优化实践指南
java·性能优化·nio
ningqw2 小时前
SpringBoot 常用跨域处理方案
java·后端·springboot
你的人类朋友2 小时前
vi编辑器命令常用操作整理(持续更新)
后端
superlls2 小时前
(Redis)主从哨兵模式与集群模式
java·开发语言·redis
胡gh2 小时前
简单又复杂,难道只能说一个有箭头一个没箭头?这种问题该怎么回答?
javascript·后端·面试
一只叫煤球的猫3 小时前
看到同事设计的表结构我人麻了!聊聊怎么更好去设计数据库表
后端·mysql·面试
uzong3 小时前
技术人如何对客做好沟通(上篇)
后端
叫我阿柒啊4 小时前
Java全栈工程师面试实战:从基础到微服务的深度解析
java·redis·微服务·node.js·vue3·全栈开发·电商平台
颜如玉4 小时前
Redis scan高位进位加法机制浅析
redis·后端·开源
Moment4 小时前
毕业一年了,分享一下我的四个开源项目!😊😊😊
前端·后端·开源