日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis 如何实现主从复制

發布時間:2025/3/15 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis 如何实现主从复制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是主從復制(Master/Slave)?

我們的數據一般是存儲在數據庫中,為了保證數據的高可用,我們一般使用多臺數據庫服務器做集群。選中其中的一臺作為主服務器(Master),其余的作為從服務器(Slave)。Master 上的數據更新后根據配置文件配置的策略,自動同步到 Slave 上,這就是主從復制

主從復制有什么作用?

  • 保證了數據的高可用。因為數據在多臺服務器上存儲了多份,即使一臺機器宕掉了,其余的機器還可以頂上。
  • 實現了讀寫分離。什么叫讀寫分離?寫數據在 Master 上,讀數據是在 Slave 上,這就叫讀寫分離。它緩解了以往 Master 既要處理讀數據又要處理寫數據的壓力,Master 上負責寫,Slave 上負責讀,大大提升了數據庫服務器的性能。
  • 容災恢復。當主機宕掉了之后,就沒有辦法向數據庫中寫數據了,怎么辦?其余的 Salve 根據配置的策略,選出一臺晉升為 Master,其余的 Slave 成為新 Master 的從機,當原來宕掉的 Master 恢復后,自動成為 Slave,實現了容災恢復。
  • Redis 如何實現主從復制?

    想要實現主從復制就必須開啟多個 redis 服務,使用不同的 pid,指明不同的端口號,生成不同的 rdb 文件,產生不同的日志文件。

    一、配置 redis.conf 配置文件

    1. 將 redis 的配置文件復制多份:

    2. 將它們都設置為后臺進程:

    3. 為它們配置不同的 pidfile(pid 文件名):

    ?
    例:6379,6380,6381。

    4. 為它們配置不同的 port(端口):

    5. 為它們配置不同的 logfile(日志文件):

    6. 為它們配置不同的 dbfilename(rdb文件名):

    二、啟動多個 redis-server 服務

    開啟三個 Linux 遠程連接客戶端,在每一個客戶端上開啟一個 redis 服務。

    redis-cli -h 192.168.198.130 -p 6379

    redis-cli -h 192.168.198.130 -p 6380

    redis-cli -h 192.168.198.130 -p 6381

    三、啟動多個 redis-cli 客戶端

    在每個 Linux 終端上開啟一個 redis-cli 客戶端連接到不同端口號上的 redis 服務:

    redis-cli -h 192.168.198.130 -p 6379
    redis-cli -h 192.168.198.130 -p 6380
    redis-cli -h 192.168.198.130 -p 6381

    注:ip 地址那里輸入的是在配置文件中綁定的 ip。

    四、將其中的一個 redis 服務做為 Master,其余兩個 redis 服務做為 Slave

    已經開啟的三個 redis 客戶端:

    在 6380 和 6381 兩個客戶端中輸入 slaveof 192.168.198.130 6379 命令,使這兩個 redis 服務成為 6379 的 slave。

    然后,分別在每個 redis 客戶端輸入 info replication 命令,顯示每個 redis 服務在這個小型集群里面扮演的角色:

    • 6379 為 master:

    • 6380 為 6379 的 slave:

    • 6381 為 6379 的 slave:

    五、演示主從復制的過程

    我們在 master 上執行?set k1 v1,預期的結果是在另外兩個 slave 上 通過?get k1?命令可以獲取對應的鍵值:

    成功了!當然,我們還可以發現其實在 master 上也是可以 read 的。

    Redis 實現主從復制的原理是什么?

    知其然還要知其所以然。

    一、master 復制數據給 slave 的原理如下:

  • slave 啟動成功之后連接到 master 后會發送一個?sync?命令。

  • master 接收到這個同步命令之后啟動后臺的存盤進程,即將內存的數據持久化到 rdb 或 aof。

  • 持久化完畢之后,master 將整個數據文件傳送給 slave。

  • 二、slave 接收 master 復制過來的數據方式有兩種:

    ? ? ?1. 全量復制:

    ? ? ? ? ?slave 剛與 master 建立連接的時候,會將接收到的 master 發來的整個數據庫文件存盤并加載到內存。

    ? ? ?2. 增量復制:

    ? ? ? ? ?slave 已經與 master 建立好連接關系的時候,master 會將收集到的修改數據的命令傳送給 slave,slave 執行這些命令,完成同步。而不是再一次重新加載整個數據文件到內存。

    ? ? ? ? ?當然,如果 slave 與 master 斷開連接,再次重連的時候還是要加載整個數據文件的。

    Redis 的主從復制的缺點

    當 master 需要同步發送到 slave 上的數據量非常大的時候,會存在一定的時延。?
    系統很繁忙或者?slave 機器數量非常多的時候也會使這個問題更加嚴重。

    新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

    總結

    以上是生活随笔為你收集整理的Redis 如何实现主从复制的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。