天天看點

redis---主從複制、哨兵模式

我們使用redis做緩存來提高系統性能,降低對資料庫的通路,那麼隻使用一個是不夠的,萬一出現故障之後,所有的壓力就會回到資料庫,照成崩盤,是以我們可以使用多個redis來做緩存,并且讀寫分離來提高性能

配置其實十分簡單,隻要啟動所有的redis,配置從機就好了,不用配置主機:

      指令: slaveof 主庫ip  主庫端口

注意:在我們設定好主從後,從機将不發進行寫操作 ,會報錯

配置好後,無論配置前主機是否有資料,從機都會有主機的所用資料(通過copy  rdb檔案),之後的每個操作發送操作指令;

複制原理:在slave 啟動成功連接配接 到master後會發送一個sync指令,master收到指令後,啟動背景的存盤程序,同時收集所有接收到的用于修改資料集的指令,在背景程序執行完畢之後,而slave服務在接受到資料庫檔案資料後,将其存盤并加載到記憶體中。

在這裡,我們如果主機故障了,我們需要手動的去設定從機,我們總不能讓人一天24小時看着吧,為了解決這個問題,有了哨兵模式;

**哨兵模式:(就是手動設定的改進版,從剩餘的從機中選一個主機),主機回來後,變成slave;

背景監控主機是否故障,在檔案下建立一個sentinel.conf檔案,linux 下指令為touch  sentinel.conf,

檔案内容

 Sentinel monitor host6379 127.0.0.1 6379 1

解釋:1表示主機挂了後讓slave投票,

可以存在多個哨兵

哨兵模式監聽原理:

每個哨兵會向其它哨兵(、master、slave定時發送消息ping,以确認對方是否”活”着,如果發現對方在指定時間(可配置)内未回應,則認為死亡,如果多數哨兵都發現某個對象死亡,則使用算法,選出主機
           

使用指令

Redis-sentinel /sentinal.conf的路徑啟動哨兵模式

缺點:寫操作在master上,主機多或者繁忙的時候有延遲