首頁  >  文章  >  資料庫  >  如何實現高可用的redis集群

如何實現高可用的redis集群

(*-*)浩
(*-*)浩原創
2019-11-29 09:11:212637瀏覽

如何實現高可用的redis集群

實作redis高可用機制的一些方法:

#保證redis高可用機制需要redis主從複製、redis持久化機制、哨兵機制、keepalived等的支援。

主從複製的作用:資料備份、讀寫分離、分散式叢集、實作高可用、宕機容錯機制等。  (建議學習:Redis影片教學

redis主從複製原理

首先主從複製需要分成兩個角色:master(主) 和slave(從) ,注意:redis裡面只支援一個主,不像Mysql、Nginx主從複製可以多主多從。

1、redis的複製功能是支援多個資料庫之間的資料同步。一類是主資料庫(master)一類是從資料庫(slave),主資料庫可以進行讀寫操作,當發生寫入操作的時候自動將資料同步到從資料庫,而從資料庫一般是唯讀的,並且接收主資料庫同步過來的數據,一個主資料庫可以有多個從資料庫,而一個從資料庫只能有一個主資料庫。

2、透過redis的複製功能可以很好的實作資料庫的讀寫分離,提高伺服器的負載能力。主資料庫主要進行寫入操作,而從資料庫負責讀取操作。

主從複製全量同步的過程:見下圖

如何實現高可用的redis集群

#Redis主從複製可以根據是否是全量分為全量同步與增量同步

Redis全量複製一般發生在Slave初始化階段,這時Slave需要將Master上的所有資料都複製一份。

全量同步過程:

1:當一個從資料庫啟動時,會向主資料庫發送sync指令,

2:主資料庫接收到sync指令後會開始在背景儲存快照(執行rdb操作),並用快取區記錄後續的所有寫入操作

3:當主伺服器快照儲存完成後,redis會將快照檔案傳送給從資料庫。

4:從資料庫收到快照檔案後,會丟棄所有舊數據,載入收到的快照。

5:   主伺服器快照傳送完畢後開始傳送緩衝區中的寫入指令至伺服器。

6:   從伺服器完成快照的載入,開始接收指令請求,並執行來自主伺服器緩衝區的寫入指令。

增量同步的過程:

Redis增量複製是指slave初始化後開始正常工作時主伺服器發生的寫入操作同步到從伺服器的過程。 

增量複製的過程主要是主伺服器每執行一個寫入指令就會傳送相同的寫入指令,從伺服器接收並執行收到的寫入指令。

Redis主從複製全量與增量同步的選擇:

#主從伺服器剛剛連接的時候,會先進行全量同步;全同步結束後,再進行增量同步。當然,如果有需要,slave 在任何時候都可以發起全量同步。 redis 策略是,無論如何,首先會嘗試進行增量同步,如不成功,要求從機進行全量同步。

redis主從複製如何設定?

修改从服务器redis/conf中的redis.conf文件
 
修改IP地址和端口号为主服务器的IP和端口
slaveof 10.211.55.9 6379 
 
masterauth 123456--- 如果主redis服务器配置了密码,则需要配置

只需要設定從伺服器的redis.conf即可,主伺服器無需設定。驗證是否成功可以透過1、先登入主伺服器redis-cli客戶端,輸入info。

若role顯示master、slave0能正常顯示從伺服器的ip,則表示主從服務配置成功,主從複製配置成功了,也同時實現了讀寫分離,不信?你看看試試看你的從伺服器還能不能寫入操作了?

答案是:不能。從伺服器只有讀取操作!

更多Redis相關技術文章,請造訪Redis入門教學欄位學習!

以上是如何實現高可用的redis集群的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn