概述
默认安装的情况下,redis 是不需要密码,可以直接登录,但出于安全考虑,往往需要给 redis 设置密码,通过账户和密码的形式进行授权登录,而设置密码有多种方式,下面分别介绍。
配置文件设置
找到 redis 的配置文件 redis.conf
,找到如下行:
#requirepass foobared
去掉前面的注释,后面设置成需要的密码。
requirepass pass
重启 redis。
$ systemctl restart redis.service
登录验证。
$ /usr/local/redis/src/redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
发现没有权限。
改用密码登录。
$ /usr/local/redis/src/redis-cli -h 127.0.0.1 -p 6379 -a 123456
127.0.0.1:6379> keys *
1) "foo"
认证成功。
也可以通过 /usr/local/redis/src/redis-cli -h 127.0.0.1 -p 6379
进入,然后通过 auth pass
进行认证。
$ /usr/local/redis/src/redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> auth 123456
OK
查看密码信息。
$ config get requirepass
1) "requirepass"
2) "123456"
命令行设置
通过 redis.conf
配置密码,这种配置方式需要重新启动 Redis。也可以通命令行客户端配置密码,这种配置方式不用重新启动 Redis。配置方式如下:
127.0.0.1:6379> config set requirepass 123456
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "123456"
注意:使用命令行客户端配置密码,重启 Redis 后仍然会使用
redis.conf
配置文件中的密码。
Redis 集群中使用认证密码
如果 Redis 服务器使用了集群。除了在 master 中配置密码外,也需要在 slave 中进行相应配置。在 slave 的配置文件中找到如下行,去掉注释并修改与 master 相同的密码即可:
# masterauth master-password