NoSQL之Redis高級實用命令詳解--安全和主從復制
一、安全性
為redis設置密碼:設置客戶端連接后進行任何其他指定前需要實用的密碼。
警告:因為redis速度非常快,所以在一臺較好的服務器下,一個外部用戶可以在一秒鐘進行150k次的密碼嘗試,這意味著你需要指定非常非常強大的密碼來防止暴力破解。
修改密碼的方法:
只需要在redis的配置文件redis.conf中開啟requirepass就可以了,比如我設置我的訪問密碼是mypassword
requirepass mypassword
在redis.conf中加入這一行代碼之后,我們殺死原來的redis進程:pkill redis然后重新啟動redis:/usr/local/redis-2.8.1/src/redis-server /user/local/redis-2.8.1/redis.conf
然后我們用/usr/local/redis-2.8.1/src/redis-cli發現還能登陸進來,但是當我們執行操作的時候,比如keys *就會如下錯誤:
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
沒有必要的授權驗證。
在這里redis支持兩種授權方式,一種就是直接用auth命令進行授權:
第一次輸入了一個錯誤的密碼test,授權失敗,第二次輸入正確的密碼,返回ok,授權成功,之后就可以進行所有的操作。
如果我們不想每次登錄進來之后都要用auth進行授權,那么我們可以采用另一種授權方式,就是在登陸客戶端的時候用-a 來指定密碼
sh-3.2# /usr/local/redis-2.8.1/src/redis-cli -a mypassword
上面的密碼如果輸錯,也能進入,但是之后不能進行操作。需要用auth重新進行授權。
二、主從復制
Redis主從復制配置和使用都非常簡單。通過主從復制可以允許多個slave server擁有和master server相同的數據庫副本。
redis主從復制的特點:
1.一臺master可以擁有多個slave(1對多的關系)
2.多個slave可以連接同一個master外,還可以連接到其他slave(這樣做的原因是如果masterdown掉之后其中的一臺slave立馬可以充當master的角色,這樣整個服務流程不受影響)
3.中從復制不會阻塞master,在同步數據的同時,master可以繼續處理client請求。
4.提高系統的伸縮性
redis主從復制的過程:
1.slave與master建立連接,發送sync同步命令。
2.Master會啟動一個后臺進程,將數據庫快照保存到文件中,同時master主進程會開始收集新得寫命令并緩存。
3.后臺完成保存后,將文件發送給slave
4.slave將文件保存到硬盤上
配置主從服務器:
配置slave服務器很簡單,只需要在slave的配置文件中加入以下配置:
slaveof masterip masterport
如果主機開啟了登錄驗證,那么還需要加入下面這句:
masterauth authpassword
然后啟動從機,首先主機會發快照給從機,從機的數據庫會更新到和主機相同的狀態,然后往主機里寫內容,從機也會隨之更新。
如果我們在從機上寫數據那么會報錯:
(error) READONLY You can't write against a read only slave.
我們可以用info命令來查看主從服務器的信息,在從機上用info命令可以看到
role:slave
master_host:masterip
master_port:masterport
master_link_status:up證明和主機處在連接狀態
在主機上用info命令
role:master
同時連接著幾臺從機
connected_slaves:1
同時可以查看連接到主機上的從機的ip和在線狀態
slave0:ip=192.168.1.107,port=6379,state=online,offset=1709,lag=1</span>原文地址:http://blog.csdn.net/liutingxu1/article/details/17116107