這篇文章主要為大家展示了“ NOSQL中redis高級(jí)實(shí)用命令有哪些”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“ NoSQL中Redis高級(jí)實(shí)用命令有哪些”這篇文章吧。
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供江孜網(wǎng)站建設(shè)、江孜做網(wǎng)站、江孜網(wǎng)站設(shè)計(jì)、江孜網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、江孜企業(yè)網(wǎng)站模板建站服務(wù),10多年江孜做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
?一、安全性
為redis設(shè)置密碼:設(shè)置客戶端連接后進(jìn)行任何其他指定前需要實(shí)用的密碼。
警告:因?yàn)閞edis速度非常快,所以在一臺(tái)較好的服務(wù)器下,一個(gè)外部用戶可以在一秒鐘進(jìn)行150k次的密碼嘗試,這意味著你需要指定非常非常強(qiáng)大的密碼來防止暴力破解。
修改密碼的方法:
只需要在redis的配置文件redis.conf中開啟requirepass就可以了,比如我設(shè)置我的訪問密碼是mypassword
requirepass mypassword
在redis.conf中加入這一行代碼之后,我們殺死原來的redis進(jìn)程:pkill redis然后重新啟動(dòng)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發(fā)現(xiàn)還能登陸進(jìn)來,但是當(dāng)我們執(zhí)行操作的時(shí)候,比如keys *就會(huì)如下錯(cuò)誤:
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
沒有必要的授權(quán)驗(yàn)證。
在這里redis支持兩種授權(quán)方式,一種就是直接用auth命令進(jìn)行授權(quán):
第一次輸入了一個(gè)錯(cuò)誤的密碼test,授權(quán)失敗,第二次輸入正確的密碼,返回ok,授權(quán)成功,之后就可以進(jìn)行所有的操作。
如果我們不想每次登錄進(jìn)來之后都要用auth進(jìn)行授權(quán),那么我們可以采用另一種授權(quán)方式,就是在登陸客戶端的時(shí)候用-a 來指定密碼
sh-3.2# /usr/local/redis-2.8.1/src/redis-cli -a mypassword
上面的密碼如果輸錯(cuò),也能進(jìn)入,但是之后不能進(jìn)行操作。需要用auth重新進(jìn)行授權(quán)。
二、主從復(fù)制
Redis主從復(fù)制配置和使用都非常簡單。通過主從復(fù)制可以允許多個(gè)slave server擁有和master server相同的數(shù)據(jù)庫副本。
redis主從復(fù)制的特點(diǎn):
1.一臺(tái)master可以擁有多個(gè)slave(1對多的關(guān)系)
2.多個(gè)slave可以連接同一個(gè)master外,還可以連接到其他slave(這樣做的原因是如果masterdown掉之后其中的一臺(tái)slave立馬可以充當(dāng)master的角色,這樣整個(gè)服務(wù)流程不受影響)
3.中從復(fù)制不會(huì)阻塞master,在同步數(shù)據(jù)的同時(shí),master可以繼續(xù)處理client請求。
4.提高系統(tǒng)的伸縮性
redis主從復(fù)制的過程:
1.slave與master建立連接,發(fā)送sync同步命令。
2.Master會(huì)啟動(dòng)一個(gè)后臺(tái)進(jìn)程,將數(shù)據(jù)庫快照保存到文件中,同時(shí)master主進(jìn)程會(huì)開始收集新得寫命令并緩存。
3.后臺(tái)完成保存后,將文件發(fā)送給slave
4.slave將文件保存到硬盤上
配置主從服務(wù)器:
配置slave服務(wù)器很簡單,只需要在slave的配置文件中加入以下配置:
slaveof masterip masterport
如果主機(jī)開啟了登錄驗(yàn)證,那么還需要加入下面這句:
masterauth authpassword
然后啟動(dòng)從機(jī),首先主機(jī)會(huì)發(fā)快照給從機(jī),從機(jī)的數(shù)據(jù)庫會(huì)更新到和主機(jī)相同的狀態(tài),然后往主機(jī)里寫內(nèi)容,從機(jī)也會(huì)隨之更新。
如果我們在從機(jī)上寫數(shù)據(jù)那么會(huì)報(bào)錯(cuò):
(error) READONLY You can't write against a read only slave.
我們可以用info命令來查看主從服務(wù)器的信息,在從機(jī)上用info命令可以看到
role:slave
master_host:masterip
master_port:masterport
master_link_status:up證明和主機(jī)處在連接狀態(tài)
在主機(jī)上用info命令
role:master
同時(shí)連接著幾臺(tái)從機(jī)
connected_slaves:1
同時(shí)可以查看連接到主機(jī)上的從機(jī)的ip和在線狀態(tài)
slave0:ip=192.168.1.107,port=6379,state=online,offset=1709,lag=1
以上是“ NoSQL中Redis高級(jí)實(shí)用命令有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!