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

Docker搭建Redis主從復(fù)制的實(shí)現(xiàn)步驟

 更新時(shí)間:2023年11月01日 10:17:05   作者:kerwin_code  
本文主要介紹了Docker搭建Redis主從復(fù)制的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、前言

本文介紹如何快速使用Docker搭建Redis主從復(fù)制環(huá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ì)外提供讀寫,從節(jié)點(diǎn)只對(duì)外提供讀,也就是常說的讀寫分離,一般業(yè)務(wù)讀操作占整個(gè)Redis請(qǐng)求的90%以上,讀寫分離架構(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ú)法寫,需要重新啟動(dòng)主節(jié)點(diǎn)或者手動(dòng)重新指定一臺(tái)主節(jié)點(diǎn),針對(duì)這點(diǎn)Redis還提供了哨兵模式和Cluster可以解決這個(gè)問題

主從復(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

將以下配置寫入配置文件

# 服務(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

將以下配置寫入配置文件

# 服務(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

將以下配置寫入配置文件

# 服務(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)建的容器名稱
–restart=always:容器開機(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:容器名稱、 redis-cli:redis自帶客戶端命令、 -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:容器名稱、 redis-cli:redis自帶客戶端命令、-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:容器名稱、 redis-cli:redis自帶客戶端命令、-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)寫數(shù)據(jù)測(cè)試

127.0.0.1:6380> set names kerwin2

從節(jié)點(diǎn)默認(rèn)只讀,無(wú)法寫入數(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ù)持久化通過bgsave生成最新的rdb快照文件,持久化期間,master會(huì)繼續(xù)接收客戶端的請(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之間的連接由于某些原因而斷開時(shí),slave能夠自動(dòng)重連Master,如果master收到了多個(gè)slave并發(fā)連接請(qǐng)求,它只會(huì)進(jìn)行一次持久化,而不是一個(gè)連接一次,然后再把這一份持久化的數(shù)據(jù)發(fā)送給多個(gè)并發(fā)連接的slave。

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

主從復(fù)制風(fēng)暴問題是因?yàn)槎鄠€(gè)從節(jié)點(diǎn)同時(shí)復(fù)制主節(jié)點(diǎn)導(dǎo)致主節(jié)點(diǎn)壓力過大,可以讓新節(jié)點(diǎn)復(fù)制從節(jié)點(diǎn)數(shù)據(jù),類似數(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

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

相關(guān)文章

  • 使用Docker搭建Maven私服的流程步驟

    使用Docker搭建Maven私服的流程步驟

    文章主要介紹了如何部署Nexus容器,包括后臺(tái)運(yùn)行、配置管理員密碼、配置阿里云代理倉(cāng)庫(kù)以及Maven配置等內(nèi)容,幫助用戶更方便地使用Nexus倉(cāng)庫(kù),需要的朋友可以參考下
    2026-04-04
  • docker容器分配固定ip的實(shí)現(xiàn)示例

    docker容器分配固定ip的實(shí)現(xiàn)示例

    如果不固定ip,每次主機(jī)重啟后,docker會(huì)動(dòng)態(tài)給容器分配ip,導(dǎo)致redis容器的IP自動(dòng)換了 ,然后還得去改配置就很煩,本文主要介紹了docker容器分配固定ip的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • 清理docker占用磁盤過大問題終極方案(親測(cè)有效!)

    清理docker占用磁盤過大問題終極方案(親測(cè)有效!)

    Docker很占用空間每當(dāng)我們運(yùn)行容器、拉取鏡像、部署應(yīng)用、構(gòu)建自己的鏡像時(shí)我們的磁盤空間會(huì)被大量占用,這篇文章主要給大家介紹了關(guān)于清理docker占用磁盤過大問題終極方案,需要的朋友可以參考下
    2024-04-04
  • Docker Desktop安裝本地Kubernetes集群的實(shí)現(xiàn)

    Docker Desktop安裝本地Kubernetes集群的實(shí)現(xiàn)

    Kubernetes用于協(xié)調(diào)高度可用的計(jì)算機(jī)集群,本文主要介紹了Docker Desktop安裝本地Kubernetes集群的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • docker 容器HostConfig 字段示例詳解

    docker 容器HostConfig 字段示例詳解

    本文詳細(xì)介紹了Docker容器的配置字段及其功能,包括Binds、ContainerIDFile、LogConfig、NetworkMode等,它還展示了這些字段的使用示例,幫助讀者更好地理解和使用Docker容器的配置,感興趣的朋友跟隨小編一起看看吧
    2026-01-01
  • 詳解將本地docker容器遷移到服務(wù)端

    詳解將本地docker容器遷移到服務(wù)端

    這篇文章主要介紹了詳解將本地docker容器遷移到服務(wù)端,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • 修改Docker鏡像(images)的存儲(chǔ)路徑的多種實(shí)現(xiàn)方式

    修改Docker鏡像(images)的存儲(chǔ)路徑的多種實(shí)現(xiàn)方式

    本文介紹了如何修改Docker數(shù)據(jù)根目錄以解決磁盤空間不足或希望使用更大/更快磁盤的問題,推薦通過修改daemon.json配置來實(shí)現(xiàn),并提供了詳細(xì)的步驟,需要的朋友可以參考下
    2026-01-01
  • Docker學(xué)習(xí)筆記之Docker端口映射

    Docker學(xué)習(xí)筆記之Docker端口映射

    本篇文章主要介紹了Docker學(xué)習(xí)筆記之Docker端口映射,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • 一文教你如何清理Docker中閑置的鏡像,容器和卷

    一文教你如何清理Docker中閑置的鏡像,容器和卷

    在使用 Docker 的過程中,很容易積累大量未使用的鏡像、容器和數(shù)據(jù)卷,這些未使用的資源不僅占據(jù)輸出空間,還會(huì)消耗磁盤空間,下面我們就來看看如何清理吧
    2025-06-06
  • 前端項(xiàng)目容器化Docker打包部署方式詳解

    前端項(xiàng)目容器化Docker打包部署方式詳解

    這篇文章主要為大家介紹了前端項(xiàng)目容器化Docker打包部署方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11

最新評(píng)論

漳浦县| 勃利县| 当阳市| 中西区| 疏附县| 台南市| 晋宁县| 全南县| 柏乡县| 曲沃县| 乐陵市| 体育| 开阳县| 阿鲁科尔沁旗| 阿图什市| 安塞县| 六安市| 泰兴市| 达州市| 天台县| 宁陵县| 思南县| 铁力市| 陇川县| 秦皇岛市| 桐城市| 海盐县| 霍邱县| 酉阳| 莒南县| 渭源县| 鄂温| 友谊县| 崇州市| 靖州| 务川| 都兰县| 观塘区| 合水县| 凌云县| 桐乡市|