最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Docker快速搭建Redis主從復(fù)制的完整步驟

 更新時(shí)間:2026年01月12日 10:34:22   作者:x***1339  
在現(xiàn)代應(yīng)用程序中,Redis憑借其高性能和簡(jiǎn)便的數(shù)據(jù)結(jié)構(gòu)被廣泛使用,為了提高數(shù)據(jù)的可用性和可靠性,很多時(shí)候我們需要在Redis中配置主從架構(gòu),這篇文章主要介紹了使用Docker快速搭建Redis主從復(fù)制的完整步驟,需要的朋友可以參考下

一、前言

本文介紹如何快速使用Docker搭建Redis主從復(fù)制環(huán)境,線(xiàn)上環(huán)境更加推薦直接部署,這里會(huì)搭建一主兩從,全部搭建在一臺(tái)主機(jī),會(huì)使用Redis6.0版本,分別使用端口號(hào) 主節(jié)點(diǎn)(6379)、從節(jié)點(diǎn)(6380、6381)。

Redis主從復(fù)制作用和優(yōu)缺點(diǎn)

  • 作用
    • 主從復(fù)制是Redis集群中最簡(jiǎn)單的一種高可用方案,配置也簡(jiǎn)單,從節(jié)點(diǎn)同步主節(jié)點(diǎn)數(shù)據(jù),一般主節(jié)點(diǎn)對(duì)外提供讀寫(xiě),從節(jié)點(diǎn)只對(duì)外提供讀,也就是常說(shuō)的讀寫(xiě)分離,一般業(yè)務(wù)讀操作占整個(gè)Redis請(qǐng)求的90%以上,讀寫(xiě)分離架構(gòu)可以有多個(gè)從節(jié)點(diǎn),從節(jié)點(diǎn)分擔(dān)主節(jié)點(diǎn)的讀操作壓力,提升整體并發(fā)量。
  • 優(yōu)點(diǎn)
    • 配置簡(jiǎn)單
    • 顯著提升整體并發(fā)量
    • 能做到數(shù)據(jù)備份的效果,避免主節(jié)點(diǎn)因意外情況損壞緩存全部丟失
  • 缺點(diǎn)
    • 主節(jié)點(diǎn)宕機(jī)會(huì)導(dǎo)致整個(gè)集群無(wú)法寫(xiě),需要重新啟動(dòng)主節(jié)點(diǎn)或者手動(dòng)重新指定一臺(tái)主節(jié)點(diǎn),針對(duì)這點(diǎn)Redis還提供了哨兵模式和Cluster可以解決這個(gè)問(wèn)題

主從復(fù)制結(jié)構(gòu)圖:

二、拉取Redis鏡像

docker pull redis:6.0.20

三、創(chuàng)建掛載目錄和添加配置文件

3.1、主節(jié)點(diǎn)(6379)

  • 添加節(jié)點(diǎn)掛載目錄

    mkdir -p /home/docker/redis6379/conf
    mkdir -p /home/docker/redis6379/data

  • 添加配置文件

    vi /home/docker/redis6379/conf/redis.conf

將以下配置寫(xiě)入配置文件

# 服務(wù)端口 默認(rèn)6379
port 6379
# 關(guān)閉保護(hù)模式,允許遠(yuǎn)程連接
protected-mode no
# 密碼
requirepass 123456

3.2、從節(jié)點(diǎn)(6380)

  • 添加節(jié)點(diǎn)掛載目錄

    mkdir -p /home/docker/redis6380/conf
    mkdir -p /home/docker/redis6380/data

  • 添加配置文件

    vi /home/docker/redis6380/conf/redis.conf

將以下配置寫(xiě)入配置文件

# 服務(wù)端口 默認(rèn)6379
port 6380
# 關(guān)閉保護(hù)模式,允許遠(yuǎn)程連接
protected-mode no
# 密碼
requirepass 123456
# 主節(jié)點(diǎn)密碼
masterauth 123456

# 配置主從復(fù)制 從節(jié)點(diǎn)默認(rèn)只讀
## redis5.0后新版本配置
replicaof 172.16.8.186 6379
## redis5.0之前配置,新版本Redis也還可以用,我部署時(shí)確定6.0版本還是可用的
# slaveof 172.16.8.186 6379

3.3、從節(jié)點(diǎn)(6381)

  • 添加節(jié)點(diǎn)掛載目錄

    mkdir -p /home/docker/redis6381/conf
    mkdir -p /home/docker/redis6381/data

  • 添加配置文件

    vi /home/docker/redis6381/conf/redis.conf

將以下配置寫(xiě)入配置文件

# 服務(wù)端口 默認(rèn)6379
port 6381
# 關(guān)閉保護(hù)模式,允許遠(yuǎn)程連接
protected-mode no
# 密碼
requirepass 123456
# 主節(jié)點(diǎn)密碼
masterauth 123456

# 配置主從復(fù)制 從節(jié)點(diǎn)默認(rèn)只讀
## redis5.0后新版本配置
replicaof 172.16.8.186 6379
## redis5.0之前配置,新版本Redis也還可以用,我部署時(shí)確定6.0版本還是可用的
# slaveof 172.16.8.186 6379

四、啟動(dòng)Redis容器

4.1、主節(jié)點(diǎn)(6379)

docker run -d 
-p 6379:6379 
--name redis6379 
--restart always 
--privileged=true 
-v /home/docker/redis6379/conf/redis.conf:/etc/redis/redis.conf 
-v /home/docker/redis6379/data:/data 
redis:6.0.20 
redis-server /etc/redis/redis.conf

4.2、從節(jié)點(diǎn)(6380)

docker run -d 
-p 6380:6380 
--name redis6380 
--restart always 
--privileged=true 
-v /home/docker/redis6380/conf/redis.conf:/etc/redis/redis.conf 
-v /home/docker/redis6380/data:/data 
redis:6.0.20 
redis-server /etc/redis/redis.conf

4.3、從節(jié)點(diǎn)(6381)

docker run -d 
-p 6381:6381 
--name redis6381 
--restart always 
--privileged=true 
-v /home/docker/redis6381/conf/redis.conf:/etc/redis/redis.conf 
-v /home/docker/redis6381/data:/data 
redis:6.0.20 
redis-server /etc/redis/redis.conf

4.4、啟動(dòng)命令參數(shù)介紹

-d:后臺(tái)運(yùn)行
-p 63xx:63xx:指定宿主機(jī)端口與容器端口映射關(guān)系
–name redis63xx:創(chuàng)建的容器名稱(chēng)
–restart=always:容器開(kāi)機(jī)自啟
–privileged=true:獲取宿主機(jī)root權(quán)限
-v /home/docker/redis63xx/conf/redis.conf:/etc/redis/redis.conf:映射配置文件目錄,宿主機(jī):容器
-v /home/docker/redis63xx/data:/data:映射數(shù)據(jù)目錄,宿主機(jī):容器
redis:6.0.20:使用的鏡像
redis-server /etc/redis/redis.conf:指定配置文件啟動(dòng)redis-server進(jìn)程

五、查看各節(jié)點(diǎn)主從信息

5.1、主節(jié)點(diǎn)(6379)

  • 連接主節(jié)點(diǎn)redis

    redis6379:容器名稱(chēng)、 redis-cli:redis自帶客戶(hù)端命令、 -a 123456:指定redis密碼登錄

    docker exec -it redis6379 redis-cli -a 123456

  • 查看節(jié)點(diǎn)replication信息

    127.0.0.1:6379> info replication

5.2、從節(jié)點(diǎn)(6380)

  • 連接主節(jié)點(diǎn)redis

    redis6380:容器名稱(chēng)、 redis-cli:redis自帶客戶(hù)端命令、-p 6380:指定redis端口、 -a 123456:指定redis密碼登錄

    docker exec -it redis6380 redis-cli -p 6380 -a 123456

  • 查看節(jié)點(diǎn)replication信息

    127.0.0.1:6380> info replication

5.3、從節(jié)點(diǎn)(6381)

  • 連接主節(jié)點(diǎn)redis

    redis6381:容器名稱(chēng)、 redis-cli:redis自帶客戶(hù)端命令、-p 6381:指定redis端口、 -a 123456:指定redis密碼登錄

    docker exec -it redis6381 redis-cli -p 6381 -a 123456

  • 查看節(jié)點(diǎn)replication信息

    127.0.0.1:6381> info replication

六、測(cè)試主從復(fù)制效果

  • 主節(jié)點(diǎn)插入數(shù)據(jù)

    127.0.0.1:6379> set names kerwin

  • 從節(jié)點(diǎn)查看數(shù)據(jù)

    127.0.0.1:6380> get names

127.0.0.1:6381> get names

  • 從節(jié)點(diǎn)寫(xiě)數(shù)據(jù)測(cè)試

    127.0.0.1:6380> set names kerwin2

從節(jié)點(diǎn)默認(rèn)只讀,無(wú)法寫(xiě)入數(shù)據(jù)

七、Redis主從工作原理

如果你為master配置了一個(gè)slave,不管這個(gè)slave是否是第一次連接上Master,它都會(huì)發(fā)送一個(gè)PSYNC命令給master請(qǐng)求復(fù)制數(shù)據(jù)。

master收到PSYNC命令后,會(huì)在后臺(tái)進(jìn)行數(shù)據(jù)持久化通過(guò)bgsave生成最新的rdb快照文件,持久化期間,master會(huì)繼續(xù)接收客戶(hù)端的請(qǐng)求,它會(huì)把這些可能修改數(shù)據(jù)集的請(qǐng)求緩存在內(nèi)存中。當(dāng)持久化進(jìn)行完畢以后,master會(huì)把這份rdb文件數(shù)據(jù)集發(fā)送給slave,slave會(huì)把接收到的數(shù)據(jù)進(jìn)行持久化生成rdb,然后再加載到內(nèi)存中。然后,master再將之前緩存在內(nèi)存中的命令發(fā)送給slave。當(dāng)master與slave之間的連接由于某些原因而斷開(kāi)時(shí),slave能夠自動(dòng)重連Master,如果master收到了多個(gè)slave并發(fā)連接請(qǐng)求,它只會(huì)進(jìn)行一次持久化,而不是一個(gè)連接一次,然后再把這一份持久化的數(shù)據(jù)發(fā)送給多個(gè)并發(fā)連接的slave。

八、主從復(fù)制風(fēng)暴問(wèn)題解決

主從復(fù)制風(fēng)暴問(wèn)題是因?yàn)槎鄠€(gè)從節(jié)點(diǎn)同時(shí)復(fù)制主節(jié)點(diǎn)導(dǎo)致主節(jié)點(diǎn)壓力過(guò)大,可以讓新節(jié)點(diǎn)復(fù)制從節(jié)點(diǎn)數(shù)據(jù),類(lèi)似數(shù)結(jié)構(gòu),可以分擔(dān)主節(jié)點(diǎn)同步壓力。

實(shí)際操作只需要將主從復(fù)制的配置調(diào)整成從節(jié)點(diǎn)即可。

# 配置主從復(fù)制 從節(jié)點(diǎn)默認(rèn)只讀
## redis5.0后新版本配置
replicaof 172.16.8.186 6381

總結(jié) 

到此這篇關(guān)于使用Docker快速搭建Redis主從復(fù)制的文章就介紹到這了,更多相關(guān)Docker快速搭建Redis主從復(fù)制內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在docker中開(kāi)啟sshd操作

    在docker中開(kāi)啟sshd操作

    這篇文章主要介紹了在docker中開(kāi)啟sshd操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • docker-compose+nginx部署前后端分離的項(xiàng)目實(shí)踐

    docker-compose+nginx部署前后端分離的項(xiàng)目實(shí)踐

    本文主要介紹了docker-compose?+?nginx部署前后端分離的項(xiàng)目,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • docker安裝部署jumpserver?2.25.5的方法

    docker安裝部署jumpserver?2.25.5的方法

    這篇文章主要介紹了docker安裝部署jumpserver?2.25.5的方法,本文通過(guò)圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09
  • docker?部署hbase并且java?Api連接的操作過(guò)程

    docker?部署hbase并且java?Api連接的操作過(guò)程

    這篇文章主要介紹了docker?部署hbase并且java?Api連接的操作過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-11-11
  • docker?run命令的使用小結(jié)

    docker?run命令的使用小結(jié)

    本文主要介紹了docker?run命令的使用小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • Docker?Desktop?安裝的詳細(xì)步驟

    Docker?Desktop?安裝的詳細(xì)步驟

    作為開(kāi)發(fā)人員,在日常開(kāi)發(fā)中,我們需要在本地去啟動(dòng)一些服務(wù),可以使用Docker?Desktop,本文主要介紹了Docker?Desktop?安裝的詳細(xì)步驟,感興趣的可以了解一下
    2023-08-08
  • Docker部署Django+Mysql+Redis+Gunicorn+Nginx的實(shí)現(xiàn)

    Docker部署Django+Mysql+Redis+Gunicorn+Nginx的實(shí)現(xiàn)

    這篇文章主要介紹了Docker 部署 Django+Mysql+Redis+Gunicorn+Nginx,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • ps命令在docker容器不存在的問(wèn)題

    ps命令在docker容器不存在的問(wèn)題

    這篇文章主要介紹了ps命令在docker容器不存在的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Deepin使用docker安裝mysql數(shù)據(jù)庫(kù)過(guò)程詳解

    Deepin使用docker安裝mysql數(shù)據(jù)庫(kù)過(guò)程詳解

    這篇文章主要介紹了Deepin使用docker安裝mysql數(shù)據(jù)庫(kù)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 解決Docker錯(cuò)誤“docker?build“?requires?exactly?1?argument(s)問(wèn)題

    解決Docker錯(cuò)誤“docker?build“?requires?exactly?1?argument(s)

    這篇文章主要介紹了解決Docker錯(cuò)誤“docker?build“?requires?exactly?1?argument(s)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評(píng)論

苗栗市| 玉溪市| 青海省| 虎林市| 沾化县| 宁南县| 香河县| 盈江县| 凯里市| 五常市| 金堂县| 临安市| 剑阁县| 承德市| 日照市| 内江市| 司法| 随州市| 凉城县| 中江县| 白银市| 隆化县| 塔河县| 乌兰浩特市| 彝良县| 云林县| 贡觉县| 时尚| 舞阳县| 南陵县| 仁化县| 临城县| 区。| 宜春市| 乐昌市| 夏津县| 石狮市| 抚州市| 诸暨市| 溆浦县| 鹤峰县|