Redis的哨兵機制和持久化數據

1.哨兵機制

首先我的白話解釋就是,幾臺具有主從複製關係的redis,當其中的主機redis宕機之後,其中的隨機一臺從機redis就會主動變爲主機redis,以便不影響正常運行。

下面是比較專業的解釋:

哨兵機制(監聽)監控,提醒,自動故障遷移
Redis的哨兵(sentinel) 系統用於管理多個 Redis 服務器,該系統執行以下三個任務:
· 監控(Monitoring): 哨兵(sentinel) 會不斷地檢查你的Master和Slave是否運作正常。
· 提醒(Notification):當被監控的某個 Redis出現問題時, 哨兵(sentinel) 可以通過 API 向管理員或者其他應用程序發送通知。
· 自動故障遷移(Automatic failover):當一個Master不能正常工作時,哨兵(sentinel) 會開始一次自動故障遷移操作,它會將失效Master的其中一個Slave升級爲新的Master, 並讓失效Master的其他Slave改爲複製新的Master; 當客戶端試圖連接失效的Master時,集羣也會向客戶端返回新Master的地址,使得集羣可以使用Master代替失效Master。
哨兵(sentinel) 是一個分佈式系統,你可以在一個架構中運行多個哨兵(sentinel) 進程,這些進程使用流言協議(gossipprotocols)來接收關於Master是否下線的信息,並使用投票協議(agreement protocols)來決定是否執行自動故障遷移,以及選擇哪個Slave作爲新的Master.
每個哨兵(sentinel) 會向其它哨兵(sentinel)、master、slave定時發送消息,以確認對方是否”活”着,如果發現對方在指定時間(可配置)內未迴應,則暫時認爲對方已掛(所謂的”主觀認爲宕機” Subjective Down,簡稱sdown).
若“哨兵羣”中的多數sentinel,都報告某一master沒響應,系統才認爲該master"徹底死亡"(即:客觀上的真正down機,Objective Down,簡稱odown),通過一定的vote算法,從剩下的slave節點中,選一臺提升爲master,然後自動修改相關配置.
雖然哨兵(sentinel) 釋出爲一個單獨的可執行文件 redis-sentinel ,但實際上它只是一個運行在特殊模式下的 Redis 服務器,你可以在啓動一個普通 Redis 服務器時通過給定 --sentinel 選項來啓動哨兵(sentinel).
在這裏插入圖片描述

怎樣實現哨兵機制

將redis下的sentinel.conf文件拷貝到你redis備份配置文件的目錄下,然後進行修改
1.修改主機信息

sentinel monitor mymaster  192.168.110.100 6379 1  #主節點 名稱 IP 端口號 選舉次數

在這裏插入圖片描述

2.修改心跳檢測 5000毫秒
在這裏插入圖片描述

3.sentinel parallel-syncs mymaster 2 — 做多少個合格節點
在這裏插入圖片描述
4.啓動redis,需要啓動將兩個配置文件都啓動起來

./redis-server /你的配置文件目錄/redis.conf
./redis-server /你的配置文件目錄/sentinel.conf --sentinel &

5.殺死主機,再次查看從機會有一臺變爲master,當再次啓動先前的主機,就變成了從機

2.redis持久化

什麼是Redis持久化,就是將內存數據保存到硬盤。
Redis 持久化存儲 (AOF 與 RDB 兩種模式)

1.RDB持久化
在900秒(15分鐘)內如果至少有1個鍵值發生變化 就保存
在300秒(6分鐘)內如果至少有10個鍵值發生變化 就保存
在這裏插入圖片描述
Shutdown關閉還是會保存
kill不會保存

2.AOF持久化
修改redis.conf文件中的屬性
AOF 實時日誌存儲
appendonly yes
改爲yes之後,每次的存值都會保存到日誌中,會自動生成一個appendonly.aof文件

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