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

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

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

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

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

Redis主從復(fù)制

來自靈魂的拷問:什么是Redis主從復(fù)制?

簡言之就是:

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

看下面的圖加深下理解:

圖片

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

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

主從如何配置

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

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

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

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

實現(xiàn)原理

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

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

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

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

圖片

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

    關(guān)注

    8

    文章

    7030

    瀏覽量

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

    關(guān)注

    7

    文章

    3799

    瀏覽量

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

    關(guān)注

    1

    文章

    514

    瀏覽量

    25471
  • Redis
    +關(guān)注

    關(guān)注

    0

    文章

    375

    瀏覽量

    10877
收藏 人收藏

    評論

    相關(guān)推薦

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

    Redis青銅修煉手冊(五) --- 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é)點沒有收到主節(jié)點的 pong 回復(fù)或者超時,比如網(wǎng)絡(luò)超時或者主節(jié)點正在阻塞無法響應(yīng)命令,從節(jié)點會斷開復(fù)制連接,下次定時任務(wù)會發(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ù)制和哨兵機制

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

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

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

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

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

    Redis主從、哨兵、Redis Cluster集群

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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