Redis5 主從複製

主從複製,讀寫分離
主機數據跟新後根據配置和策略自動同步到備機的master/slaver 機制。Master 以寫爲主,Slaver以讀爲主。

使用方法:

  1. 配置從庫不配置主庫
  2. 命令:slaver 主庫IP 主庫端口
  3. 配置文件細節

進行復制的模式

主從複製:從Reids 執行 命令知乎會複製master 在Slaver 執行命令的時間節點前的所有數據,然後以添加的方式複製時間節點之後的所有數據。

  1. 一主多僕:一個master ,被多個slaver連接 主機死之後從機的原地待命,並且主機再次啓動之後可已經主從關係續接上。
    從機死之後,再次開啓,主從關係不再能復接。只要從機和master斷開,都需要重新連接,除非你配置進了redis.cof 文件中。

  2. 前赴後繼連接方式:多個Redis 像鏈表一樣主從主從的連接起來
    第一個Redis 是Master 之後的Redis 雖然在邏輯上也是後一個Redis 的Master 但是在計算機中也是一個Slaver,只是他作爲一個Slaver還連接了Slaver。

  3. 反客爲主連接方式:在一主多僕的模式下
    主機掛掉,讓連接他的Slaver變爲Master。Master拉掉之後,Slaver執行 SLAVEOF no one 這個Slaver就會凡客爲主,變成Master。此時原本連接掛掉的Master的Redis 就有兩種選擇:一是:變爲新的Master的Slaver;二是:保持原地不動等待掛掉的Redis 復活。

進行復制的原理:
Slaver 啓動成功連接到Master 後會發送一條synchrosized 命令,Master接收到指令之後,會啓動存盤進程,同時收集用於數據修改的所有指令,在後臺的存盤進程執行完畢之後,Master 會將整個數據文件傳送給Slaver,這樣就完成了一次完全同步
全量複製:在每一個Slaver 成功連接之後進行一次完全同步
增量複製:在連接之後的,完成全量複製之後,Master會繼續收集收集修改數據的命令依次傳遞給Slaver完成同步

哨兵模式:sentinel ★★
反客爲主的自動版,在反客爲主的模式下,需要我們手動的將Slaver變爲Master SLAVEOF no one ,哨兵模式是他的自動版。能夠後臺監控主機是否故障,如果故障了就從Slaver Redis 中選一個從庫變爲主庫,當之前的Master再次啓動的時候他會變成反客爲主的現在的Master的Slaver。
要使用哨兵模式:要在redis/ 創建一個sentinel.conf 文件(千萬不能寫錯)
文件中配置哨兵模式

sentinel monitor 被監控Redis的名字(自己隨便起)被監控Redis的ip 地址 1(數字1 表示採用投票的方式選出下一個Master)
#例如:
sentinel monitor host 127.0.0.1 6379 1

在ip 爲127.0.0.1 6379 掛掉之後,系統會自動選出Master ;並且當127.0.0.1 6379 重新啓動之後也會變成選出的Master的Slaver。

不會做這些工作但是要懂

一組Sentinel可以監控多個Master

主從複製的缺點:
複製的延時,複製是從Master複製到Slaver,會有複製的延遲,在系統本來工作負擔就比較大的時候問題會更加嚴重。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章