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