redis 高级实用教程
生活随笔
收集整理的這篇文章主要介紹了
redis 高级实用教程
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、設(shè)置redis外網(wǎng)訪問(wèn)
更改redis.conf 文件
# vim redis.conf bind 127.0.0.1 # 注釋掉改行 protected-mode yes # 更改模式為no(redis3.2后)二、設(shè)置密碼驗(yàn)證
更改redis.conf配置文件
requirepass redhat或者通過(guò)set設(shè)置
127.0.0.1:6284> config get requirepass # 查看密碼設(shè)置 1) "requirepass" 2) "" 127.0.0.1:6284> config set requirepass "111" # 設(shè)置密碼 OK 127.0.0.1:6284> config get requirepass # 已設(shè)置認(rèn)證,無(wú)法繼續(xù)訪問(wèn) (error) NOAUTH Authentication required. 127.0.0.1:6284> auth "111" # 鍵入密碼 OK 127.0.0.1:6284> config get requirepass 1) "requirepass" 2) "111"三、redis主從復(fù)制
redis 主從復(fù)制特點(diǎn)
(1) master可以擁有多個(gè)slave (2) 多個(gè)slave 可以連接同一個(gè)master 外,還可以連接到其他slave (3) 主從復(fù)制不會(huì)阻塞master,在同步數(shù)據(jù)時(shí),master可以繼續(xù)處理client請(qǐng)求 (4) 提高系統(tǒng)的伸縮性redis 主從復(fù)制過(guò)程
當(dāng)配置好slave后,slave與master建立連接,然后發(fā)送sync命令。無(wú)論是第一次連接還是重新連接,master都會(huì)啟動(dòng)一個(gè)后臺(tái)進(jìn)程,將數(shù)據(jù)庫(kù)快照保存到文件中,同時(shí)master主進(jìn)程會(huì)開(kāi)始收集新的寫(xiě)命令并緩存。后臺(tái)進(jìn)程完成寫(xiě)文件后,master就發(fā)送文件給slave,slave將文件保存到硬盤(pán)上,再加載到內(nèi)存中,接著master就會(huì)把緩存的命令轉(zhuǎn)發(fā)給slave,后續(xù)master將收到的寫(xiě)命令發(fā)送給slave。如果master同時(shí)收到多個(gè)slave發(fā)來(lái)的同步連接命令,master只會(huì)啟動(dòng)一個(gè)進(jìn)程來(lái)寫(xiě)數(shù)據(jù)庫(kù)鏡像,然后發(fā)送給所有的slave。redis主從復(fù)制配置
安裝多個(gè)實(shí)例
# cp redis.conf redis_slave. # vim redis_slave.conf更改以下內(nèi)容: pidfile /var/run/redis_slave.pid port 6378 logfile "/wh_k/redis-2.8.17/src/redis_slave.log" dbfilename dump_slave.rdb修改配置文件redis_slave.conf (主從配置)
# vim redis_slave.conf添加以下內(nèi)容: # slaveof <masterip> <masterport> slaveof 192.168.61.128 6379 masterauth redhat # master主服務(wù)器有密碼,需添加此配置,“redhat”為主服務(wù)器密碼啟動(dòng)slave連接數(shù)據(jù)庫(kù)
# ./redis-server ../redis_slave.conf # ./redis-cli -h 192.168.61.128 -p 6378測(cè)試
mater端:127.0.0.1:6379> select 2 OK 127.0.0.1:6379[2]> keys * (empty list or set)slave端:192.168.61.128:6378> select 2 OK 192.168.61.128:6378[2]> keys * (empty list or set)master端插入數(shù)據(jù):127.0.0.1:6379[2]> set name zsh OK 127.0.0.1:6379[2]> set age 20 OK 127.0.0.1:6379[2]> mget name age 1) "zsh" 2) "20"slave端測(cè)試:192.168.61.128:6378[2]> keys * 1) "name" 2) "age" 192.168.61.128:6378[2]> mget name age 1) "zsh" 2) "20"查看角色(主、備)
192.168.61.128:6378[2]> info # Replication role:slave四、redis事務(wù)
簡(jiǎn)單事務(wù)控制
127.0.0.1:6379[1]> set age 10 OK 127.0.0.1:6379[1]> multi # 標(biāo)記事務(wù)塊開(kāi)始 OK 127.0.0.1:6379[1]> set age 15 QUEUED 127.0.0.1:6379[1]> set age 20 QUEUED 127.0.0.1:6379[1]> exec # 調(diào)用 1) OK 2) OK 127.0.0.1:6379[1]> get age "20"取消事務(wù)discard(事務(wù)回滾)
127.0.0.1:6379[1]> get age "20" 127.0.0.1:6379[1]> multi OK 127.0.0.1:6379[1]> set age 15 QUEUED 127.0.0.1:6379[1]> set age 10 QUEUED 127.0.0.1:6379[1]> discard OK 127.0.0.1:6379[1]> get age "20"監(jiān)視命令watch
watch 命令會(huì)監(jiān)視給定的key,當(dāng)exec 時(shí)候如果監(jiān)視的key 從調(diào)用watch 后發(fā)生過(guò)變化,則整個(gè)事務(wù)會(huì)失敗。也可以調(diào)用watch 多次監(jiān)視多個(gè)key.這 樣就可以對(duì)指定的key 加樂(lè)觀鎖了。注意watch 的key 是對(duì)整個(gè)連接有效的,事務(wù)也一樣。如果連接斷開(kāi),監(jiān)視和事務(wù)都會(huì)被自動(dòng)清除。當(dāng)然了exec,discard,unwatch 命令都會(huì)清除連接中的所有監(jiān)視。redis事務(wù)可以理解為一個(gè)打包的批量執(zhí)行腳本,但批量指令并非原子化的操作,中間某條指令的失敗不會(huì)導(dǎo)致前面已做指令的回滾,也不會(huì)造成后續(xù)的指令不做。127.0.0.1:6379[1]> get age "20" 127.0.0.1:6379[1]> set name zsh OK 127.0.0.1:6379[1]> 127.0.0.1:6379[1]> watch age OK 127.0.0.1:6379[1]> multi OK 127.0.0.1:6379[1]> incr age QUEUED 127.0.0.1:6379[1]> incr name QUEUED 127.0.0.1:6379[1]> exec 1) (integer) 21 2) (error) ERR value is not an integer or out of range 127.0.0.1:6379[1]> get age "21" # age已發(fā)生變化 127.0.0.1:6379[1]> get name "zsh" # name未變化五、發(fā)布和訂閱消息
Redis 發(fā)布訂閱(pub/sub)是一種消息通信模式:發(fā)送者(pub)發(fā)送消息,訂閱者(sub)接收消息,客戶端可以訂閱任意數(shù)量的頻道。有新消息通過(guò)PUBLISH 命令發(fā)送給頻道 channel1 時(shí), 這個(gè)消息就會(huì)被發(fā)送給訂閱它的另幾個(gè)客戶端 打開(kāi)客戶端1訂閱消息:127.0.0.1:6379> SUBSCRIBE Wechat Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "Wechat" 3) (integer) 1打開(kāi)客戶端2發(fā)布消息:127.0.0.1:6379> PUBLISH Wechat "Hello world !" (integer) 1 127.0.0.1:6379> PUBLISH Wechat "Beautifull" (integer) 1打開(kāi)客戶端1查看消息:127.0.0.1:6379> SUBSCRIBE Wechat Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "Wechat" 3) (integer) 1 1) "message" 2) "Wechat" 3) "Hello world !" 1) "message" 2) "Wechat" 3) "Beautifull"六、redis 數(shù)據(jù)備份與恢復(fù)
創(chuàng)建備份save
該命令將在 redis 安裝目錄中創(chuàng)建dump.rdb文件(默認(rèn)src下)127.0.0.1:6379> SAVE OK恢復(fù)備份
將dump.rdb移至安裝目錄下啟動(dòng)服務(wù)即可。后臺(tái)備份bgsave
127.0.0.1:6379> bgsave Background saving started7、性能測(cè)試
redis 性能測(cè)試是通過(guò)同時(shí)執(zhí)行多個(gè)命令實(shí)現(xiàn)的。
了解更多關(guān)注我喲!!!
掃一掃進(jìn)入我的公眾號(hào)。
總結(jié)
以上是生活随笔為你收集整理的redis 高级实用教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ddos源码 ntp_详解 NTP反射型
- 下一篇: 计算机专业英语第三章在线测试,《计算机专