docker search redis
docker pull
镜像名字 这种情况下速度比较慢docker run -d -p 6379:6379 -v $PWD/conf/redis.conf:/usr/local/etc/redis/redis.conf -v $PWD/data:/data --name docker-redis - docker.io/redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes
yum install -y gcc
wget http://download.redis.io/releases/redis-6.0.8.tar.gz
tar xzf redis-6.0.8.tar.gz
Make 会报错,需要升级gcc
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
需要注意的是scl命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本。
如果要长期使用gcc 9.3的话:
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
之后执行make test 也会报错,需要升级tcl
yum install -y tcl-devel
cd redis-6.0.8
make
执行完 make 命令后,redis-6.0.8 的 src 目录下会出现编译后的 redis 服务程序 redis-server,还有用于测试的客户端程序 redis-cli:启动 redis 服务:使用默认配置
cd src
./redis-server
yum install epel-release
如果找不到redis,先装这个
yum install redis
安装redis
find / -name "redis*"
查看redis都安装到了哪里
service redis start
打开redis服务
cd redis-6.0.8/
useradd -s /sbin/nologin -M redis
创建redis用户chmod -R 755 /root/redis/redis-6.0.8
给他设置读和执行的权限chown redis.redis /root/redis/redis-6.0.8
将redis加入root组中在Redis6.0之前的版本中,登陆Redis Server只需要输入密码(前提配置了密码 requirepass)即可,不需要输入用户名,而且密码也是明文配置到配置文件中,安全性不高。并且应用连接也使用该密码,导致应用有所有权限处理数据,风险也极高。在Redis6.0有了ACL之后,终于解决了这些不安全的因素,可以按照不同的需求设置相关的用户和权限。
acl setuser y1
新建用户不带密码
acl setuser y1 on >777
auth y1 777
带密码的并切换用户,acl whoami
但是没有任何权限访问被拒绝
acl list
列出所有用户
user 代表是用户
default 代表默认用户(反之 为自己创建的用户)
on 代表激活(反之off,默认新增的为off)
nopass 代表不需要密码
~*
代表可以访问的key
+@all
代表可以操作的command
Key的说明
acl getuser y1
得到一个用户详细信息
acl setuser y1 allkeys +@all
给用户赋所有权限
~*
表示允许访问所有key,也可以用 allkeys
来表示~*
。
权限相关:权限这块涉及到的比较多:权限的类别、类别里包含的命令,以及子权限。
注意:-@all
表示没有任何权限;+@all
表示有所有权限;
+
:将命令添加到用户可以调用的命令列表中,如+@hash
-
: 将命令从用户可以调用的命令列表中移除
+@
: 添加一类命令,如:@admin
, @set
, @hash
… 可以ACL CAT
查看具体的操作指令。特殊类别@all
表示所有命令,包括当前在服务器中存在的命令,以及将来将通过模块加载的命令
-@
: 类似+@
,从客户端可以调用的命令列表中删除命令
+
: 允许否则禁用特定子命令。注意,这种形式不允许像-DEBUG | SEGFAULT那样,而只能以“ +”开头
allcommands
:+@all
的别名,允许所有命令操作执行。注意,这意味着可以执行将来通过模块系统加载的所有命令。
nocommands
:-@all
的别名,不允许所有命令操作执行。
创建用户y7只给他赋予查看字符串的权限用户y8只有查看哈希值的权限
acl setuser y7 on >777
acl setuser y7 ~* +@string
~表示通配符
acl setuser y8 on >777
acl setuser y8 ~* +@hash
赋予他查看hash值的权限