redis做爲一個高速數據庫,在互聯網上,必須有對應的安全機制來進行保護,方法有2,以下。html
1.比較安全的辦法是採用綁定IP的方式來進行控制。redis
# If you want you can bind a single interface, if the bind option is not # specified all the interfaces will listen for incoming connections. # # bind 127.0.0.1
把# bind 127.0.0.1前面的 註釋#號去掉,而後把127.0.0.1改爲你容許訪問你的redis服務器的ip地址,表示只容許該ip進行訪問數據庫
這種狀況下,咱們在啓動redis服務器的時候不能再用:redis-server,改成:redis-server path/redis.conf 即在啓動的時候指定須要加載的配置文件,其中path/是你上面修改的redis配置文件所在目錄,這個方法有一點不太好,我不免有多臺機器訪問一個redis服務。安全
2.設置密碼,以提供遠程登錄服務器
打開redis.conf配置文件,找到requirepass,而後修改以下:併發
requirepass yourpassword
yourpassword就是redis驗證密碼,設置密碼之後發現能夠登錄,可是沒法執行命令了。ui
redis-cli -h yourIp -p yourPort//啓動redis客戶端,並鏈接服務器
keys * //輸出服務器中的全部key
這時候你能夠用受權命令進行受權,就不報錯了spa
auth youpassword
另外,在鏈接服務器的時候就能夠指定登陸密碼,避免單獨輸入上面受權命令命令行
redis-cli -h yourIp-p yourPort -a youPassword
除了在配置文件redis.conf中配置驗證密碼之外,也能夠在已經啓動的redis服務器經過命令行設置密碼,但這種方式是臨時的,當服務器重啓了密碼必須重設。命令行設置密碼方式以下:code
config set requirepass yourPassword
有時候咱們不知道當前redis服務器是否有設置驗證密碼,或者忘記了密碼是什麼,咱們能夠經過命令行輸入命令查看密碼,命令以下:
config get requirepass
若是redis服務端沒有配置密碼,會獲得nil,而若是配置了密碼,可是redis客戶端鏈接redis服務端時,沒有用密碼登陸驗證,會提示:operation not permitted,這時候能夠用命令:auth yourpassword 進行驗證密碼,再執行 config set requirepass,就會顯示yourpassword
因爲redis併發能力極強,僅僅搞密碼,攻擊者可能在短時間內發送大量猜密碼的請求,很容易暴力破解,因此建議密碼越長越好,好比20位。(密碼在 conf文件裏是明文,因此不用擔憂本身會忘記)
本文參考以下文章,並根據本身的實際使用經驗進行了加工,細化。轉載請註明:http://www.cnblogs.com/langtianya/p/5189234.html