Redis的三種模式:主從、哨兵、集群

一、Redis的主從模式

通過執(zhí)行replicaof命令,讓一個服務(wù)器去復(fù)制另一個服務(wù)器的數(shù)據(jù)。被復(fù)制的服務(wù)器稱為Master主服務(wù),對主服務(wù)器進行復(fù)制的服務(wù)器稱為Slave從服務(wù)器。
為保證數(shù)據(jù)副本的一致,主從庫之間采用的是讀寫分離的方式。
讀操作:主庫、從庫都可以接收。
寫操作:首先到主庫執(zhí)行,然后,主庫將寫操作同步給從庫。

實現(xiàn)原理步驟:

  1. 從服務(wù)器向主服務(wù)器發(fā)送SYNC命令
  2. 主服務(wù)器收到SYNC命令后,執(zhí)行BGSAVE命令,在后臺生成RDB文件,使用緩沖區(qū)記錄從現(xiàn)在開始執(zhí)行的所有的寫命令。
  3. 當(dāng)主服務(wù)器的BGSAVE命令執(zhí)行完畢后,主服務(wù)器后將BGSAVE命令生成的RDB文件發(fā)送給從服務(wù)器,從服務(wù)器接收并載入這個RDB文件,將自己的數(shù)據(jù)庫狀態(tài)更新至主服務(wù)器執(zhí)行BGSAVE命令時的數(shù)據(jù)庫狀態(tài)。
  4. 主服務(wù)器將記錄在緩沖區(qū)里面的所有寫命令發(fā)送給從服務(wù)器,從服務(wù)器執(zhí)行這些寫命令,將自己的數(shù)據(jù)庫狀態(tài)更新至主服務(wù)器數(shù)據(jù)庫當(dāng)前所處的狀態(tài)。
圖片.png

二、哨兵機制

主從庫模式下,如果從庫發(fā)生故障了,客戶端可以繼續(xù)向主庫或其他從庫發(fā)送請求,進行相關(guān)的操作,但是如果主庫發(fā)生故障了,那就直接會影響到從庫的同步,因為從庫沒有相應(yīng)的主庫可以進行數(shù)據(jù)復(fù)制操作了。所以引入了哨兵機制,哨兵其實就是一個運行在特殊模式下的 Redis 進程,主從庫實例運行的同時,它也在運行。哨兵主要負(fù)責(zé)的就是三個任務(wù):監(jiān)控主庫運行狀態(tài),并判斷主庫是否客觀下線。在主庫客觀下線后,選取新主庫。選出新主庫后,通知從庫和客戶端。

圖片.png

三、Redis集群

集群方案采用哈希槽來處理數(shù)據(jù)和實例之間的映射關(guān)系。一個切片集群共有 16384 個哈希槽,這些哈希槽類似于數(shù)據(jù)分區(qū),每個鍵值對都會根據(jù)它的 key,被映射到一個哈希槽中。例如,如果集群中有 N 個實例,那么,每個實例上的槽個數(shù)為 16384/N 個。


圖片.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容