文章目录

  • Redis6.0新功能
  • 一、ACL
  • 简介
  • 1、使用acl list命令展现用户权限列表
  • 2、使用acl cat命令
  • 3、使用acl whoami命令查看当前用户
  • 4、使用acl setuser命令创建和编辑用户acl
  • 二、IO多线程
  • 简介
  • 原理架构
  • 三、工具支持cluster



Redis6.0新功能

一、ACL

简介

Redis ACL是Access Control List(访问控制列表)的缩写,该功能允许根据可以执行的命令和可以访问的键来限制某些连接。
在Redis 5 版本之前,Redis安全规则只有密码控制还有通过rename来调整高危命令比如flushdb,keys *,shutdown等,Redis 6则提供ACL的功能对用户进行更细粒度的权限控制:
①接入权限:用户名和密码;
②可以执行的命令;
③可以操作的key;

1、使用acl list命令展现用户权限列表

redis反弹shell 权限 redis权限控制_数据库


数据说明:

redis反弹shell 权限 redis权限控制_redis反弹shell 权限_02

2、使用acl cat命令

1)查看添加权限指令类别

redis反弹shell 权限 redis权限控制_redis_03


2)加参数类型名可以查看类型下具体命令

redis反弹shell 权限 redis权限控制_数据库_04

3、使用acl whoami命令查看当前用户

redis反弹shell 权限 redis权限控制_数据库_05

4、使用acl setuser命令创建和编辑用户acl

1)创建用户

redis反弹shell 权限 redis权限控制_数据库_06


2)设置有用户名、密码、ACL权限、并启用的用户

redis反弹shell 权限 redis权限控制_数据库_07


可以看到jack用户已经添加并启用,密码为123456,设置了只能操作以cached:开头的get命令。

切换到jack用户:

redis反弹shell 权限 redis权限控制_多线程_08


可以看到不能执行其他命令,执行get cached:age返回值为空,证明可以执行。

二、IO多线程

简介

Redis 6 支持多线程,该别单线程了吗?
IO多线程其实是指客户端交互部分的网络IO交互处理模块多线程,而非执行命令多线程。Redis 6执行命令依然是单线程。

原理架构

redis反弹shell 权限 redis权限控制_数据库_09


另外,多线程IO默认也是不开启的,需要在配置文件中配置

io-threads-do-reads yes

io-thread 线程数

三、工具支持cluster

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