實現redis高可用機制的方法有哪些?針對這個問題,這篇文章給出了相對應的分析和解答,希望能幫助更多想解決這個問題的朋友找到更加簡單易行的辦法。
保證redis高可用機制需要redis主從復制、redis持久化機制、哨兵機制、keepalived等的支持。
主從復制的作用:數據備份、讀寫分離、分布式集群、實現高可用、宕機容錯機制等。
redis主從復制原理
首先主從復制需要分為兩個角色:master(主) 和 slave(從) ,注意:redis里面只支持一個主,不像Mysql、Nginx主從復制可以多主多從。
1、redis的復制功能是支持多個數據庫之間的數據同步。一類是主數據庫(master)一類是從數據庫(slave),主數據庫可以進行讀寫操作,當發生寫操作的時候自動將數據同步到從數據庫,而從數據庫一般是只讀的,并接收主數據庫同步過來的數據,一個主數據庫可以有多個從數據庫,而一個從數據庫只能有一個主數據庫。
2、通過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高可用機制的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。