天天看點

redis總結--主從複制和哨兵模式

Redis 主從複制是主機資料更新後根據配置和政策,自動同步到備份的master/slaver機制,master寫為主,slaver以讀為主,能夠做到讀寫分離,容災恢複。

主從複制的準備工作

    a、拷貝多個redis.conf檔案,

    b、開啟daemonize yes,

    c、Pid檔案名字,

    d、指定端口,

    e、log檔案名字,

    f、dump.rdb檔案名

一、一主二從

兩個從庫使用指令:slaveof 主庫ip 主庫端口 配置跟随的主庫,配置完後可以使用info replication指令檢視資訊;

注:從機連接配接後恢複主機所有記錄;主寫從機存在記錄,從機無法寫;主機死了,從機原地待命,不會變成主機,主機再次啟動,關系不變;

從機死了,再啟動從機則變成master,需要再次連接配接,除非配置到redis.conf;(slaveof 127.0.0.1 6381)

二、薪火相傳

兩個從庫使用指令:slaveof 主庫ip 主庫端口 配置跟随的主庫,配置成a 是b的master,b是c的master,則a,b角色都是slave,在a中set記錄,b,c都會有記錄

三、反客為主

在一主二仆情況下,當主機挂了,從機可以使用slaveof no one成為新的主機,另一個從機還是原來狀态,不會改變主機的對象

四、哨兵模式

反客為主的自動版,能夠背景監控主機是否故障,如果故障了然後通過投票數将從庫轉成主庫

1、3個redis先配合成一主二從的狀态

2、建立sentinel.conf檔案,并進行配置

#sentinel端口
port 26379

#工作路徑,注意路徑不要和主重複
dir "/usr/local/redis-6379"

# 守護程序模式
daemonize yes

#關閉保護模式
protected-mode no

# 指明日志檔案名
logfile "./sentinel.log"

#哨兵監控的master,主從配置一樣,這裡隻用輸入redis主節點的ip/port和法定人數。
#sentinel monitor 被監控的主機名字(自己取名)127.0.0.1 6379 1 
#最後一個1,表示主機挂了salve投票看讓誰的票多于1票以上接替成為主機,得票數多為主機
sentinel monitor mymaster 192.168.125.128 6379 1

# master或slave多長時間(預設30秒)不能使用後标記為s_down狀态。
sentinel down-after-milliseconds mymaster 5000

#若sentinel在該配置值内未能完成failover操作(即故障時master/slave自動切換),則認為本次failover失敗。
sentinel failover-timeout mymaster 18000

#設定master和slaves驗證密碼,可以不設
sentinel auth-pass mymaster 123456 

           

3、哨兵模式的啟動

在redis的彬目錄: ./redis-setinel /home/ubuntu/myredis/sentinel.conf (根據自己的目錄)

4.java的調用:可以看我之前的部落格,這邊附上連結

https://blog.csdn.net/qq_25011427/article/details/80787303

https://blog.csdn.net/qq_25011427/article/details/80787212

繼續閱讀