概述
默認安裝的情況下,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