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

詳解Redis主從復制和哨兵機制

一文深入Redis主從復制的原理詳解

談談Redis怎樣配置實現(xiàn)主從復制?
mysql主從復制三種模式
mysql主從復制的原理
mysql主從復制 混合類型的復制
redis查看主從節(jié)點命令
Redis使用重要的兩個機制:Reids持久化和主從復制

評論