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

Docker-compose搭建Redis集群(Sentinel)的實現(xiàn)

 更新時間:2023年07月07日 11:31:00   作者:樓下安同學(xué)  
本文主要介紹了Docker-compose搭建Redis集群(Sentinel)的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

redis集群概述

Redis的集群方案大致有三種:

  • redis cluster集群方案
  • master/slave主從方案
  • 使用哨兵模式來進行主從替換以及故障恢復(fù)

Sentinel系統(tǒng)可以監(jiān)視一個或者多個redis master服務(wù),以及master服務(wù)的所有從服務(wù);當(dāng)某個master服務(wù)下線時,自動將該master下的某個從服務(wù)升級為master服務(wù)替代已下線的master服務(wù)繼續(xù)處理請求。

使用Docker搭建Redis 集群

打開Windows Terminal 新建redis-sentinel主目錄,進入目錄內(nèi)部,在新建一個sentinel目錄用來存放哨兵腳本。在sentinel目錄中新建 sentinel.conf 配置文件、Dockerfile、sentinel-entrypoint.sh腳本文件。

sentinel.conf 文件配置

# 哨兵sentinel實例運行的端口 默認(rèn)26379  
port 26379  
sentinel monitor mymaster redis-master 6379 3
# 指定多少毫秒之后 主節(jié)點沒有應(yīng)答哨兵sentinel 此時 哨兵主觀上認(rèn)為主節(jié)點下線 默認(rèn)30秒
sentinel down-after-milliseconds mymaster 5000
# 指定了在發(fā)生failover主備切換時最多可以有多少個slave同時對新的master進行同步,這個數(shù)字越小,完成failover所需的時間就越長
sentinel parallel-syncs mymaster 1
# 故障轉(zhuǎn)移的超時時間
sentinel failover-timeout mymaster 5000

sentinel-entrypoint.sh腳本文件配置

# 同步配置文件,啟動哨兵
sed -i "s/$SENTINEL_QUORUM/$SENTINEL_QUORUM/g" /etc/redis/sentinel.conf
sed -i "s/$SENTINEL_DOWN_AFTER/$SENTINEL_DOWN_AFTER/g" /etc/redis/sentinel.conf
sed -i "s/$SENTINEL_FAILOVER/$SENTINEL_FAILOVER/g" /etc/redis/sentinel.conf
exec docker-entrypoint.sh redis-server /etc/redis/sentinel.conf --sentinel

Dockerfile文件配置

# 建立Dockerfile指定基礎(chǔ)鏡像,同時拷貝配置文件到鏡像內(nèi)部
FROM redis
EXPOSE 26379
ADD sentinel.conf /etc/redis/sentinel.conf
RUN chown redis:redis /etc/redis/sentinel.conf
COPY sentinel-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/sentinel-entrypoint.sh
ENTRYPOINT ["sentinel-entrypoint.sh"]

docker-compose.yml文件配置

# 搭建幾個從庫,就需要在services中配置幾個信息,開放相應(yīng)端口
version: '2'
networks:
  app-tier:
    driver: bridge
services:
  redis:
    image: 'bitnami/redis:latest'
    environment:
      - REDIS_REPLICATION_MODE=master
      - REDIS_PASSWORD=""
    networks:
      - app-tier
    ports:
      - '6380:6379'
  redis-slave:
    image: 'bitnami/redis:latest'
    environment:
      - REDIS_REPLICATION_MODE=slave
      - REDIS_MASTER_HOST=redis
      - REDIS_MASTER_PASSWORD=""
      - REDIS_PASSWORD=""
    ports:
      - '6381:6379'
    depends_on:
      - redis
    networks:
      - app-tier
  redis-slave2:
    image: 'bitnami/redis:latest'
    environment:
      - REDIS_REPLICATION_MODE=slave
      - REDIS_MASTER_HOST=redis
      - REDIS_MASTER_PASSWORD=""
      - REDIS_PASSWORD=""
    ports:
      - '6382:6379'
    depends_on:
      - redis
    networks:
      - app-tier
  redis-slave3:
    image: 'bitnami/redis:latest'
    environment:
      - REDIS_REPLICATION_MODE=slave
      - REDIS_MASTER_HOST=redis
      - REDIS_MASTER_PASSWORD=""
      - REDIS_PASSWORD=""
    ports:
      - '6383:6379'
    depends_on:
      - redis
    networks:
      - app-tier  
  redis-sentinel:
    image: 'bitnami/redis-sentinel:latest'
    environment:
      - REDIS_MASTER_PASSWORD=""
    depends_on:
      - redis
      - redis-slave
      - redis-slave2
      - redis-slave3
    ports:
      - '26379-26382:26379'
    networks:
      - app-tier

配置文件架構(gòu)

redis-sentinel                        # 項目根路徑
    ├── docker-compose.yml            # docker-compose文件
    └── sentinel                      # 存放初始化sentinel容器的相關(guān)文件
        ├── Dockerfile                # sentinel構(gòu)建鏡像文件
        ├── sentinel.conf             # sentinel配置文件
        └── sentinel-entrypoint.sh    # sentinel.sh啟動腳本

啟動服務(wù)

# 在后面加 -d 為在后臺啟動 
# compose啟動失敗可以嘗試手動啟動Containers
docker-compose up --scale redis-sentinel=4

測試哨兵

打開4個Windows Terminal,連接redis,其中6380為master,6381、6382、6383為slave,此時只有master是有寫的權(quán)限的,當(dāng)使用slava進行寫的時候會報 (error) READONLY You can't write against a read only replica.錯誤,即為搭建成功。

? kill掉主庫容器進程,模擬宕機

# Kill掉主庫容器進程,模擬宕機
docker kill Containerid

這就是所謂的高負(fù)載高可用架構(gòu),在使用集群承擔(dān)高負(fù)載的同時,也能進行高可用的容災(zāi)機制。

到此這篇關(guān)于Docker-compose搭建Redis集群(Sentinel)的實現(xiàn)的文章就介紹到這了,更多相關(guān)Docker-Compose搭建Redis集群內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何在?Docker?中運行?Mongodb

    如何在?Docker?中運行?Mongodb

    本文詳細(xì)介紹了如何在Docker中安裝并運行MongoDB,包括安裝Docker,下載Mongo鏡像,創(chuàng)建容器,連接數(shù)據(jù)庫和數(shù)據(jù)持久化的方法,通過具體的命令和步驟,使用戶能夠順利在Docker中部署MongoDB服務(wù)
    2024-01-01
  • Docker部署MinIO鏡像的方法(保姆級教程)

    Docker部署MinIO鏡像的方法(保姆級教程)

    本文主要介紹了使用Docker部署MinIO鏡像,包括創(chuàng)建掛載目錄、運行MinIO容器的參數(shù)解析、使用Compose運行MinIO容器等,具有一定的參考價值,感興趣的可以了解一下
    2024-12-12
  • 如何通過 Docker 部署 AstrBot支持lmstudio本地模型接入

    如何通過 Docker 部署 AstrBot支持lmstudio本地模型接入

    這篇文章給大家介紹如何通過Docker部署AstrBot支持lmstudio本地模型接入,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2026-03-03
  • docker安裝與docker-compose安裝配置nginx過程

    docker安裝與docker-compose安裝配置nginx過程

    文章記錄在CentOS?7.6部署環(huán)境的Docker安裝步驟、版本沖突解決方法及Docker?Compose配置流程,涵蓋內(nèi)核檢查、軟件包安裝、鏡像獲取與服務(wù)啟動等關(guān)鍵操作
    2025-08-08
  • docker安裝并運行rabbitmq的實例代碼

    docker安裝并運行rabbitmq的實例代碼

    在本篇文章里小編給大家整理了關(guān)于docker安裝并運行rabbitmq的實例代碼以及相關(guān)知識點,需要的朋友們學(xué)習(xí)下。
    2019-10-10
  • Docker數(shù)據(jù)存儲之tmpfs mounts詳解

    Docker數(shù)據(jù)存儲之tmpfs mounts詳解

    今天小編就為大家分享一篇關(guān)于Docker數(shù)據(jù)存儲之tmpfs mounts詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • Docker實現(xiàn)將鏡像從1.2GB壓縮到200MB的優(yōu)化指南

    Docker實現(xiàn)將鏡像從1.2GB壓縮到200MB的優(yōu)化指南

    作為一名在容器化領(lǐng)域摸爬滾打多年的開發(fā)者,深知Docker鏡像大小對生產(chǎn)環(huán)境的影響,本文將詳細(xì)記錄優(yōu)化歷程,從問題分析到解決方案實施,從理論原理到實戰(zhàn)技巧,感興趣的小伙伴可以了解下
    2025-09-09
  • 阿里云ECS(CentOS鏡像)安裝docker的實現(xiàn)步驟

    阿里云ECS(CentOS鏡像)安裝docker的實現(xiàn)步驟

    本文主要介紹了阿里云ECS(CentOS鏡像)安裝docker的實現(xiàn)步驟,從準(zhǔn)備工作到實際安裝步驟,詳細(xì)解析每一步操作,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • docker安裝mongo容器并掛載外部配置文件及目錄方式

    docker安裝mongo容器并掛載外部配置文件及目錄方式

    文章總結(jié):本文詳細(xì)介紹了如何使用Docker安裝MongoDB,并將外部配置文件和目錄掛載到容器中,首先,拉取MongoDB鏡像,然后創(chuàng)建配置文件和目錄,并將配置文件內(nèi)容復(fù)制到容器中,最后,創(chuàng)建容器并運行MongoDB
    2025-11-11
  • docker打tar包命令使用小結(jié)

    docker打tar包命令使用小結(jié)

    本文主要介紹了docker打tar包命令使用小結(jié),詳細(xì)講解了使用 docker ps`命令查看容器信息及鏡像名稱與容器名稱的區(qū)別,具有一定的參考價值,感興趣的可以了解一下
    2025-12-12

最新評論

宁陵县| 土默特左旗| 武乡县| 图们市| 监利县| 石城县| 安庆市| 镶黄旗| 新宾| 辛集市| 灵寿县| 共和县| 麟游县| 南宫市| 长武县| 丰顺县| 高安市| 吴江市| 景谷| 曲水县| 郯城县| 赤峰市| 定边县| 汨罗市| 静安区| 棋牌| 合川市| 永泰县| 兴安盟| 嵩明县| 乌审旗| 德昌县| 阜宁县| 扶风县| 延寿县| 纳雍县| 濉溪县| 岳阳县| 延长县| 龙海市| 马山县|