Redis默認(rèn)配置是不需要密碼認(rèn)證的爵憎,也就是說只要連接的Redis服務(wù)器的host和port正確,就可以連接使用。這在安全性上會(huì)有一定的問題鹰椒,所以需要啟用Redis的認(rèn)證密碼,增加Redis服務(wù)器的安全性呕童。
- 修改配置文件
Redis的配置文件默認(rèn)在/etc/redis.conf漆际,找到如下行:
requirepass foobared
- 重啟Redis
如果Redis已經(jīng)配置為service服務(wù),可以通過以下方式重啟:
service redis restart
如果Redis沒有配置為service服務(wù)夺饲,可以通過以下方式重啟:
/usr/local/bin/redis-cli shutdown
/usr/local/bin/redis-server /etc/redis.conf
- 登錄驗(yàn)證
設(shè)置Redis認(rèn)證密碼后奸汇,客戶端登錄時(shí)需要使用-a參數(shù)輸入認(rèn)證密碼,不添加該參數(shù)雖然也可以登錄成功往声,但是沒有任何操作權(quán)限擂找。如下:
$ ./redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
使用密碼認(rèn)證登錄,并驗(yàn)證操作權(quán)限:
$ ./redis-cli -h 127.0.0.1 -p 6379 -a myPassword
127.0.0.1:6379> config get requirepass
"requirepass"
"myPassword"
看到類似上面的輸出烁挟,說明Reids密碼認(rèn)證配置成功婴洼。
除了按上面的方式在登錄時(shí),使用-a參數(shù)輸入登錄密碼外撼嗓。也可以不指定柬采,在連接后進(jìn)行驗(yàn)證:
復(fù)制代碼
$ ./redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> auth myPassword
OK
127.0.0.1:6379> config get requirepass
"requirepass"
"myPassword"
127.0.0.1:6379>
復(fù)制代碼
- 在命令行客戶端配置密碼
前面介紹了通過 redis.conf配置密碼欢唾,這種配置方式需要重新啟動(dòng)Redis。也可以通命令行客戶端配置密碼粉捻,這種配置方式不用重新啟動(dòng)Redis礁遣。配置方式如下:
127.0.0.1:6379> config set requirepass newPassword
OK
127.0.0.1:6379> config get requirepass
"requirepass"
"newPassword"
注意:使用命令行客戶端配置密碼,重啟Redis后仍然會(huì)使用 redis.conf配置文件中的密碼肩刃。
- 在Redis集群中使用認(rèn)證密碼
如果Redis服務(wù)器祟霍,使用了集群。除了在master中配置密碼外盈包,也需要在slave中進(jìn)行相應(yīng)配置沸呐。在slave的配置文件中找到如下行,去掉注釋并修改與master相同的密碼即可: