日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

redis 高级实用教程

發布時間:2025/3/12 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 started

7、性能測試
redis 性能測試是通過同時執行多個命令實現的。

[root@Centos6 src]# ./redis-benchmark -n 10000 -q PING_INLINE: 50505.05 requests per second PING_BULK: 48309.18 requests per second SET: 58823.53 requests per second GET: 60975.61 requests per second INCR: 60606.06 requests per second LPUSH: 61349.69 requests per second LPOP: 59880.24 requests per second SADD: 61728.39 requests per second SPOP: 59880.24 requests per second LPUSH (needed to benchmark LRANGE): 64516.13 requests per second LRANGE_100 (first 100 elements): 27777.78 requests per second LRANGE_300 (first 300 elements): 11737.09 requests per second LRANGE_500 (first 450 elements): 9115.77 requests per second LRANGE_600 (first 600 elements): 6702.41 requests per second MSET (10 keys): 39840.64 requests per second 為提升性能,可以采用管道技術:管道技術可以在服務端未響應時,客戶端可以繼續向服務端發送請求,并最終一次性讀取所有服務端的響應。

了解更多關注我喲!!!

掃一掃進入我的公眾號。

總結

以上是生活随笔為你收集整理的redis 高级实用教程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。