1. 程式人生 > >redis 主從配置(1主2從加哨兵)

redis 主從配置(1主2從加哨兵)

兩個提供參考

https://www.cnblogs.com/gossip/p/5992716.html

https://www.cnblogs.com/dupang/p/6414365.html


一,本文目的

         Redis的的的的主從配置分為兩篇文章,第一篇主要介紹了Redis的的的主從配置的搭建過程及使用,第二篇主要說明各種情況下的的Redis的主從狀態,如法師掛掉,奴隸販子掛掉,掛掉後重新加入等。

 

二,常用命令

  1. 根據配置檔案啟動redis:./src/redis-server redis.conf
  2. 啟動哨兵在src下 ./redis-sentnel ../sentnel.conf                   要是啟動失敗後邊加上  --
  3. 啟動redis客戶端:redis-cli -p port
  4. Slaver連線Master:slaveof host:ip           (測試時使用slaveof手動連線master,正式環境使用配置檔案)
  5. 關閉Redis:shutdown
  6. 檢視主從資訊:info Replication

 

Redis的配置

    1、按照1主2從的結構搭建,即1個Master,2個Slaver節點

    2、Redis配置檔案redis.conf的配置

  daemonize
(後臺執行)
pidfile port logfile(日誌,src目錄) # slaveof <masterip> <masterport>
  (測試時使用slaveof手動連線master,正式環境使用配置檔案)
Master yes /var/run/redis6379.pid 6379 "redis6379.log"  
Slaver1
yes /var/run/redis6381.pid 6381 "redis6381.log" slaveof 127.0.0.1 6379
Slaver2 yes /var/run/redis6382.pid 6382 "redis6382.log" slaveof 127.0.0.1 6379

    3、配置完成後3個節點都是Master

    4、配置主從節點(通過info replication檢視主從關係)

  5、Master節點設定key後非同步同步到Slaver節點;Slaver節點只能讀取資料,不能修改

 6、主節點掛掉後,手動將S1子節點升級為Master(命令:slaveof no one 手動將Slaver節點升級為Master節點)

   操作步驟如下:

    a) Master節點:Shutdown關閉節點

    b) Slaver1節點:slaveof no one將其升級為Master節點

    c) Slaver2節點:使用slaveof 127.0.0.1 6381 重連Slaver2將其視為Master節點

    d) 原來的Master節點:重新啟動後,可以使用slaveof 127.0.0.1 6381 連線Slaver2將其視為Master節點,自己成為Slaver節點

 7、使用哨兵模式,自動監視Master節點,當前掛掉後,自動將Slaver節點變為Master節點

       a) sentinel.conf配置檔案,修改sentinel monitor host6379 127.0.0.1 6379 1,其它使用預設即可
           host6379 主機名稱,隨便起    主機IP 埠 1表示選舉,某個slaver得到超過1票則成成為Master節點

    sentinel  monitor  主機名隨便起  主節點的ip  主節點的埠  某個slaver得到超過1票則成成為Master節點

       b) 啟動sentinel: ./redis-sentinel ../sentinel.conf

   8、手動shutdown Master節點後,等待一段時間(大概一分鐘),sentinel會重新選舉Master節點。下面將6381選舉為Master節點,6382自動重連6381的Master節點

     6379 原來的Master節點重啟後變成Slaver節點

 

 

四、總結

  1. Master可讀可寫,Slaver只能讀,不能寫
  2. Master可以對應多個Slaver,但是數量越多壓力越大,延遲就可能越嚴重
  3. Master寫入後立即返回,幾乎同時將寫入非同步同步到各個Slaver,所以基本上延遲可以忽略
  4. 可以通過slaveof no one命令將Slaver升級為Master(當Master掛掉時,手動將某個Slaver變為Master)
  5. 可以通過sentinel哨兵模式監控Master,當Master掛掉時自動選舉Slaver變為Master,其它Slaver自動重連新的Master