Redis主從復制
來自靈魂的拷問:什么是Redis主從復制?
簡言之就是:
- 主對外從對內,主可寫從不可寫
- 主掛了,從不可為主
看下面的圖加深下理解:

對,你沒看錯,Redis主從復制沒有動態選舉Master節點的能力,主掛了服務就不可以寫數據了。僅僅就是增強了應用讀數據的并發量同時做數據備份。
一般生產環境會采用 哨兵 或者 Redis Cluster 這種具備Master自動選舉的方案,我們學習時還是要掌握主從的原理后,再去更深一步,對于哨兵和Redis Cluster方案感興趣的話,可以留言告訴我,咱們后面安排上。
主從如何配置
接下來,我們實戰一下redis的主從架構配置:
- 主redis無需任何配置
- 從機需要修改redis.conf文件中如下配置項
port 6378 # 如果是使用的一臺機器注意端口要與主機不同
# slaveof < masterip > < masterport >
# 表示當前【從服務器】對應的【主服務器】的IP是192.168.10.135,端口是6379。
slaveof 192.168.137.6 6379
臥槽,你是不是想問:這么簡單么?沒錯就是這么無情,但是這種事情一般代碼越少,事情越大,實現原理是啥呀?怎么就可以主從復制了呢?
別慌,七哥,帶大家好好縷一縷,整完去應付面試絕對是沒有問題的。
實現原理
Redis從2.8版本開始,使用PSYNC命令代替SYNC命令來執行復制時的同步操作。因此本文只講解目前采用PSYNC的同步原理。
PSYNC命令具有完整同步(full resynchronization) 和 部分同步 (partial resynchronization)兩種模式:
- 其中完整同步用于處理初次復制情況:完整重同步的執行步驟是通過讓主服務器創建并發送RDB文件,以及向從服務器發送保存在緩沖區里面的寫命令來進行同步;
- 而部分同步則用于處理斷線后重復制情況:當從服務器在斷線后重新連接主服務器時,如果條件允許,主服務器可以將主從服務器連接斷開期間執行的寫命令發送給從服務器,從服務器只要接收并執行這些寫命令,就可以將數據庫更新至主服務器當前所處的狀態。
下圖展示了主從服務器在執行部分重同步時的通信過程:

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
數據
+關注
關注
8文章
7335瀏覽量
94755 -
數據庫
+關注
關注
7文章
4019瀏覽量
68337 -
架構
+關注
關注
1文章
532瀏覽量
26589 -
Redis
+關注
關注
0文章
392瀏覽量
12185
發布評論請先 登錄
相關推薦
熱點推薦
Redis主從復制以及主從復制原理
如果發送 ping 命令后,從節點沒有收到主節點的 pong 回復或者超時,比如網絡超時或者主節點正在阻塞無法響應命令,從節點會斷開復制連接,下次定時任務會發起重連。
一文深入Redis主從復制的原理詳解
運行 ID 的主要作用是用來識別 Redis 節點。如果使用 ip+port 的方式,那么如果主節點重啟修改了 RDB/AOF 數據,從節點再基于偏移量進行復制將是不安全的。所以,當運行 id 變化后,從節點將進行全量復制。也就
談談Redis怎樣配置實現主從復制?
之前總結過redis的持久化機制:深度剖析Redis持久化機制,持久化機制主要解決redis數據單機備份問題;redis的高可用需要考慮數據的多機備份,多機備份通過
發表于 01-31 11:31
?999次閱讀
mysql主從復制三種模式
MySQL主從復制是一種常見的數據同步方式,它可以實現將一個數據庫的更改同步到其他多個數據庫的功能。主從復制可以提高數據庫的可用性和性能,以及提供故障恢復和數據備份的支持。在MySQL中,有三種
mysql主從復制的原理
MySQL主從復制是一種數據庫復制技術,它允許將一個MySQL數據庫的更新操作自動復制到其他MySQL數據庫上的過程。主要通過MySQL的binlog(二進制日志)和relay log(中繼日志)來
mysql主從復制 混合類型的復制
MySQL主從復制是一種常用的數據復制技術,可以實現數據從一個MySQL服務器(主服務器)復制到另一個MySQL服務器(從服務器)。在主從復制中,混合類型的
redis查看主從節點命令
Redis是一種開源的內存數據結構存儲系統,常被用作數據庫、緩存和消息中間件。在Redis中,可以通過一些命令來查看主從節點的信息,以便進行監控和管理。 Redis
Redis使用重要的兩個機制:Reids持久化和主從復制
今天這篇文章,我們一起了解 Redis 使用中非常重要的兩個機制:Reids 持久化和主從復制。 我們都知道Redis是一個內存數據庫,在學習主從同步之前,我們首先要想到
Redis哨兵模式的自動故障檢測與主從切換實戰
Redis 主從復制解決了讀擴展和數據冗余問題,但主節點故障時需要人工介入切換,這在生產環境中是不可接受的。Sentinel(哨兵)模式在主從架構之上增加了自動故障檢測和故障轉移能力,是 Re
什么是Redis主從復制
評論