0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是Redis主從復(fù)制

麥辣雞腿堡 ? 來(lái)源:七哥聊編程 ? 作者:七哥聊編程 ? 2023-10-09 15:09 ? 次閱讀

Redis主從復(fù)制

來(lái)自靈魂的拷問(wèn):什么是Redis主從復(fù)制?

簡(jiǎn)言之就是:

  • 主對(duì)外從對(duì)內(nèi),主可寫從不可寫
  • 主掛了,從不可為主

看下面的圖加深下理解:

圖片

對(duì),你沒(méi)看錯(cuò),Redis主從復(fù)制沒(méi)有動(dòng)態(tài)選舉Master節(jié)點(diǎn)的能力,主掛了服務(wù)就不可以寫數(shù)據(jù)了。僅僅就是增強(qiáng)了應(yīng)用讀數(shù)據(jù)的并發(fā)量同時(shí)做數(shù)據(jù)備份。

一般生產(chǎn)環(huán)境會(huì)采用 哨兵 或者 Redis Cluster 這種具備Master自動(dòng)選舉的方案,我們學(xué)習(xí)時(shí)還是要掌握主從的原理后,再去更深一步,對(duì)于哨兵和Redis Cluster方案感興趣的話,可以留言告訴我,咱們后面安排上。

主從如何配置

接下來(lái),我們實(shí)戰(zhàn)一下redis的主從架構(gòu)配置:

  • 主redis無(wú)需任何配置
  • 從機(jī)需要修改redis.conf文件中如下配置項(xiàng)
port 6378  # 如果是使用的一臺(tái)機(jī)器注意端口要與主機(jī)不同
# slaveof < masterip > < masterport >
# 表示當(dāng)前【從服務(wù)器】對(duì)應(yīng)的【主服務(wù)器】的IP是192.168.10.135,端口是6379。
slaveof 192.168.137.6 6379

臥槽,你是不是想問(wèn):這么簡(jiǎn)單么?沒(méi)錯(cuò)就是這么無(wú)情,但是這種事情一般代碼越少,事情越大,實(shí)現(xiàn)原理是啥呀?怎么就可以主從復(fù)制了呢?

別慌,七哥,帶大家好好縷一縷,整完去應(yīng)付面試絕對(duì)是沒(méi)有問(wèn)題的。

實(shí)現(xiàn)原理

Redis從2.8版本開始,使用PSYNC命令代替SYNC命令來(lái)執(zhí)行復(fù)制時(shí)的同步操作。因此本文只講解目前采用PSYNC的同步原理。

PSYNC命令具有完整同步(full resynchronization)部分同步 (partial resynchronization)兩種模式:

  • 其中完整同步用于處理初次復(fù)制情況:完整重同步的執(zhí)行步驟是通過(guò)讓主服務(wù)器創(chuàng)建并發(fā)送RDB文件,以及向從服務(wù)器發(fā)送保存在緩沖區(qū)里面的寫命令來(lái)進(jìn)行同步;
  • 而部分同步則用于處理斷線后重復(fù)制情況:當(dāng)從服務(wù)器在斷線后重新連接主服務(wù)器時(shí),如果條件允許,主服務(wù)器可以將主從服務(wù)器連接斷開期間執(zhí)行的寫命令發(fā)送給從服務(wù)器,從服務(wù)器只要接收并執(zhí)行這些寫命令,就可以將數(shù)據(jù)庫(kù)更新至主服務(wù)器當(dāng)前所處的狀態(tài)。

下圖展示了主從服務(wù)器在執(zhí)行部分重同步時(shí)的通信過(guò)程:

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7232

    瀏覽量

    90714
  • 數(shù)據(jù)庫(kù)
    +關(guān)注

    關(guān)注

    7

    文章

    3882

    瀏覽量

    65539
  • 架構(gòu)
    +關(guān)注

    關(guān)注

    1

    文章

    525

    瀏覽量

    25795
  • Redis
    +關(guān)注

    關(guān)注

    0

    文章

    381

    瀏覽量

    11229
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Redis主從復(fù)制的作用和步驟

    Redis青銅修煉手冊(cè)(五) --- Redis主從復(fù)制
    發(fā)表于 06-27 07:20

    mysql的主從復(fù)制

    mysql 主從復(fù)制
    發(fā)表于 04-28 14:30

    基于mycat的Mysql主從復(fù)制讀寫分離全攻略

    基于mycat的Mysql主從復(fù)制讀寫分離全攻略
    發(fā)表于 09-08 10:10 ?4次下載
    基于mycat的Mysql<b class='flag-5'>主從復(fù)制</b>讀寫分離全攻略

    Redis主從復(fù)制以及主從復(fù)制原理

    如果發(fā)送 ping 命令后,從節(jié)點(diǎn)沒(méi)有收到主節(jié)點(diǎn)的 pong 回復(fù)或者超時(shí),比如網(wǎng)絡(luò)超時(shí)或者主節(jié)點(diǎn)正在阻塞無(wú)法響應(yīng)命令,從節(jié)點(diǎn)會(huì)斷開復(fù)制連接,下次定時(shí)任務(wù)會(huì)發(fā)起重連。
    的頭像 發(fā)表于 03-12 15:24 ?1.8w次閱讀
    <b class='flag-5'>Redis</b><b class='flag-5'>主從復(fù)制</b>以及<b class='flag-5'>主從復(fù)制</b>原理

    詳解Redis主從復(fù)制和哨兵機(jī)制

    Redis主從復(fù)制主要有兩個(gè)角色,主機(jī)(master)對(duì)外提供讀寫功能,從機(jī)(slave)對(duì)外只提供讀功能,主機(jī)定期把數(shù)據(jù)同步到從機(jī)上保證數(shù)據(jù)一致性。
    的頭像 發(fā)表于 05-03 18:14 ?2040次閱讀
    詳解<b class='flag-5'>Redis</b><b class='flag-5'>主從復(fù)制</b>和哨兵機(jī)制

    一文深入Redis主從復(fù)制的原理詳解

    運(yùn)行 ID 的主要作用是用來(lái)識(shí)別 Redis 節(jié)點(diǎn)。如果使用 ip+port 的方式,那么如果主節(jié)點(diǎn)重啟修改了 RDB/AOF 數(shù)據(jù),從節(jié)點(diǎn)再基于偏移量進(jìn)行復(fù)制將是不安全的。所以,當(dāng)運(yùn)行 id 變化后,從節(jié)點(diǎn)將進(jìn)行全量復(fù)制。也就
    的頭像 發(fā)表于 02-04 16:13 ?2096次閱讀
    一文深入<b class='flag-5'>Redis</b><b class='flag-5'>主從復(fù)制</b>的原理詳解

    談?wù)?b class='flag-5'>Redis怎樣配置實(shí)現(xiàn)主從復(fù)制?

    之前總結(jié)過(guò)redis的持久化機(jī)制:深度剖析Redis持久化機(jī)制,持久化機(jī)制主要解決redis數(shù)據(jù)單機(jī)備份問(wèn)題;redis的高可用需要考慮數(shù)據(jù)的多機(jī)備份,多機(jī)備份通過(guò)
    發(fā)表于 01-31 11:31 ?780次閱讀

    Redis主從、哨兵、Redis Cluster集群

    主從。 1.1 Redsi主從概念 Redis主從模式,就是部署多臺(tái)Redis服務(wù)器,有主庫(kù)和從庫(kù),它們之間通過(guò)
    的頭像 發(fā)表于 06-12 14:58 ?994次閱讀
    <b class='flag-5'>Redis</b>的<b class='flag-5'>主從</b>、哨兵、<b class='flag-5'>Redis</b> Cluster集群

    聊聊RocketMQ的主從復(fù)制

    RocketMQ 主從復(fù)制是 RocketMQ 高可用機(jī)制之一,數(shù)據(jù)可以從主節(jié)點(diǎn)復(fù)制到一個(gè)或多個(gè)從節(jié)點(diǎn)。
    的頭像 發(fā)表于 07-04 09:42 ?818次閱讀
    聊聊RocketMQ的<b class='flag-5'>主從復(fù)制</b>

    mysql主從復(fù)制三種模式

    MySQL主從復(fù)制是一種常見(jiàn)的數(shù)據(jù)同步方式,它可以實(shí)現(xiàn)將一個(gè)數(shù)據(jù)庫(kù)的更改同步到其他多個(gè)數(shù)據(jù)庫(kù)的功能。主從復(fù)制可以提高數(shù)據(jù)庫(kù)的可用性和性能,以及提供故障恢復(fù)和數(shù)據(jù)備份的支持。在MySQL中,有三種
    的頭像 發(fā)表于 11-16 14:04 ?1774次閱讀

    mysql主從復(fù)制的原理

    MySQL主從復(fù)制是一種數(shù)據(jù)庫(kù)復(fù)制技術(shù),它允許將一個(gè)MySQL數(shù)據(jù)庫(kù)的更新操作自動(dòng)復(fù)制到其他MySQL數(shù)據(jù)庫(kù)上的過(guò)程。主要通過(guò)MySQL的binlog(二進(jìn)制日志)和relay log(中繼日志)來(lái)
    的頭像 發(fā)表于 11-16 14:18 ?610次閱讀

    mysql主從復(fù)制 混合類型的復(fù)制

    MySQL主從復(fù)制是一種常用的數(shù)據(jù)復(fù)制技術(shù),可以實(shí)現(xiàn)數(shù)據(jù)從一個(gè)MySQL服務(wù)器(主服務(wù)器)復(fù)制到另一個(gè)MySQL服務(wù)器(從服務(wù)器)。在主從復(fù)制中,混合類型的
    的頭像 發(fā)表于 11-16 14:20 ?713次閱讀

    redis查看主從節(jié)點(diǎn)命令

    Redis是一種開源的內(nèi)存數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)系統(tǒng),常被用作數(shù)據(jù)庫(kù)、緩存和消息中間件。在Redis中,可以通過(guò)一些命令來(lái)查看主從節(jié)點(diǎn)的信息,以便進(jìn)行監(jiān)控和管理。 Redis
    的頭像 發(fā)表于 12-04 11:44 ?1643次閱讀

    配置MySQL主從復(fù)制和讀寫分離

    配置MySQL主從復(fù)制和讀寫分離
    的頭像 發(fā)表于 10-23 11:44 ?693次閱讀
    配置MySQL<b class='flag-5'>主從復(fù)制</b>和讀寫分離

    Redis使用重要的兩個(gè)機(jī)制:Reids持久化和主從復(fù)制

    今天這篇文章,我們一起了解 Redis 使用中非常重要的兩個(gè)機(jī)制:Reids 持久化和主從復(fù)制。 我們都知道Redis是一個(gè)內(nèi)存數(shù)據(jù)庫(kù),在學(xué)習(xí)主從同步之前,我們首先要想到
    的頭像 發(fā)表于 12-18 10:33 ?298次閱讀
    <b class='flag-5'>Redis</b>使用重要的兩個(gè)機(jī)制:Reids持久化和<b class='flag-5'>主從復(fù)制</b>

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品