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

docker-compose 搭建redis集群(三臺服務(wù)器,每臺服務(wù)器上一主一從)

 更新時間:2025年03月31日 10:39:33   作者:黑尾土撥鼠  
本文主要介紹了Docker Compose搭建Redis集群是一種便捷高效的方法,本次搭建使用三臺服務(wù)器,每臺服務(wù)器上一主一從,具有一定的參考價值,感興趣的可以了解一下

1、前言

使用 Docker Compose 搭建 Redis 集群是一種便捷高效的方法,可以快速地在本地或者測試環(huán)境中搭建一個 Redis 集群。以下是詳細的步驟,在 Docker 環(huán)境中使用 docker-compose 來搭建 Redis 集群。

本次搭建使用三太虛擬機作為宿主機,ip分別如下:

192.168.10.128
192.168.10.129
192.168.10.130

2、準備工作

2.1、Docker 安裝

通過以下指令進行Docker 安裝:

// 更新軟件包索引
sudo apt-get update

// 允許APT使用HTTPS
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

// 添加 Docker 的官方 GPG 密鑰:
sudo  curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
// 設(shè)置穩(wěn)定版?zhèn)}庫
sudo add-apt-repository \
   "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
  $(lsb_release -cs) \
  stable"
// 更新軟件包索引
sudo apt-get update

// 安裝 Docker
sudo apt-get install docker-ce

// 查看Docker狀態(tài)
sudo systemctl status docker

2.2、docker-compose 安裝

docker-compose 安裝命令如下:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.29.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

2.3 目錄創(chuàng)建

在每臺創(chuàng)建redis的data目錄,使用以下腳本進行:

#!/bin/bash

for dir in master/data slave/data; do
  mkdir -p "/home/arkham/docker/redis/redis-cluster/$dir";
done

3、redis配置文件

3.1 生成redis.conf文件

我們需要為每個 Redis 節(jié)點創(chuàng)建獨立的配置文件,以下是 redis.conf 的示例,其他節(jié)點的配置文件類似,只需要修改端口和節(jié)點名稱。為了方便操作,同樣通過shell腳步來完成,不同服務(wù)器只需要更改cluster-announce-ip即可,腳本代碼如下:

#!/bin/bash

for dir in master slave; do
 if [ "$dir" == "master" ]; then
    port=6379
  elif [ "$dir" == "slave" ]; then
    port=6380
  fi
echo "port $port
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb
dir /data
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
requirepass 123456arkham
masterauth 123456arkham
cluster-announce-ip 192.168.10.128" >/home/arkham/docker/redis/redis-cluster/$dir/redis.conf;
done

3.2 shell文件無法執(zhí)行問題解決

在windows下編寫的shell腳本,將shell文件拷貝至相應(yīng)服務(wù)器,執(zhí)行過程中可能會報文件不存在錯誤,這時候腳本文件可能執(zhí)行失敗,一個是權(quán)限問題,還有可能是文件問題,dos格式的文件行尾為^M,而 unix 格式的文件行尾為$,解決辦法如下

# 給sehll目錄下所有文件增加權(quán)限
chmod -R 775 /home/server/shell

# 查看行尾符 dos格式的文件行尾為^M$,而unix格式的文件行尾為$
sudo  cat -A redis.sh
# 修改
sudo  sed -i "s/\r//" redis.sh

3.3 docker-compose.yml文件編寫

docker-compose.yml文件內(nèi)容如下:

version: '3.1'

services:
  redis-master:
    image: redis:latest
    container_name: redis-master
    restart: always
    ports:
      - "6379:6379"
      - "16379:16379"
    environment:
      - TZ=Asia/Shanghai
    volumes:
    - /home/arkham/docker/redis/redis-cluster/master/data:/data
    - /home/arkham/docker/redis/redis-cluster/master/redis.conf:/usr/local/etc/redis/redis.conf
    deploy:
      resources:
        limits:
          cpus: '2'
          memory: 4G
        reservations:
          cpus: '2'
          memory: 4G
    command: ["redis-server","/usr/local/etc/redis/redis.conf"]

  redis-slave:
    image: redis:latest
    container_name: redis-slave
    restart: always
    ports:
      - "6380:6380"
      - "16380:16380"
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - /home/arkham/docker/redis/redis-cluster/slave/data:/data
      - /home/arkham/docker/redis/redis-cluster/slave/redis.conf:/usr/local/etc/redis/redis.conf
    deploy:
      resources:
        limits:
          cpus: '2'
          memory: 4G
        reservations:
          cpus: '2'
          memory: 4G
    command: [ "redis-server","/usr/local/etc/redis/redis.conf" ]

4、啟動集群及初始化

4.1 啟動 Redis 集群

在 redis 目錄下,執(zhí)行以下命令啟動 Redis 節(jié)點:

sudo docker-compose up -d

如果拉取鏡像超時失敗或者拒絕連接,可能是因為docker源的原因,修改為國內(nèi)源:

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
        "https://do.nark.eu.org",
        "https://dc.j8.work",
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn"
    ]
}
sudo systemctl daemon-reload
sudo systemctl restart docker

4.2 Redis 集群初始化

集群啟動后,需進行集群初始化操作。需要進入到任意一個 Redis 容器中,并使用 redis-cli 命令來創(chuàng)建集群。

// 進入任意 Redis 容器
docker exec -it redis-master  /bin/bash
// 執(zhí)行創(chuàng)建集群
redis-cli -a 123456arkham --cluster create 192.168.10.128:6379 192.168.10.128:6380 192.168.10.129:6379 192.168.10.129:6380 192.168.10.129:6379 192.168.10.129:6380 --cluster-replicas 1
// 創(chuàng)建成功后連接任意一個redis節(jié)點
redis-cli -a 123456arkham -c -h 192.168.10.128 -p 6379
// 查看集群信息
cluster info

執(zhí)行結(jié)果如下:

192.168.10.128:6379> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:4
cluster_size:3
cluster_current_epoch:4
cluster_my_epoch:1
cluster_stats_messages_ping_sent:2972
cluster_stats_messages_pong_sent:2841
cluster_stats_messages_fail_sent:4
cluster_stats_messages_sent:5817
cluster_stats_messages_ping_received:2841
cluster_stats_messages_pong_received:2970
cluster_stats_messages_fail_received:2
cluster_stats_messages_received:5813
total_cluster_links_buffer_limit_exceeded:0

5、總結(jié)

通過上述步驟,我們已經(jīng)使用 Docker Compose 成功搭建了一個 Redis 集群。這種方式特別適合用于開發(fā)和測試環(huán)境,因為它的配置簡單、部署快速,非常適合本地或測試環(huán)境中進行集群架構(gòu)的模擬和驗證。但在生產(chǎn)環(huán)境中,Redis 集群的部署和使用需要更為謹慎和仔細的規(guī)劃,包括性能調(diào)優(yōu)、安全配置、資源分配等多個方面。

使用 Docker Compose 部署 Redis 集群的優(yōu)勢主要在于快速構(gòu)建和靈活配置。通過 Compose 文件,可以定義多個 Redis 實例的網(wǎng)絡(luò)、端口和數(shù)據(jù)卷,實現(xiàn)一鍵啟動整個集群的需求。在開發(fā)和測試階段,這種方式能夠節(jié)省大量時間,便于模擬復(fù)雜的集群環(huán)境,幫助開發(fā)者驗證 Redis 集群在不同場景下的表現(xiàn)和問題。Docker Compose 對資源的隔離性和可移植性,使得 Redis 集群的搭建和銷毀變得極其簡單,這對于功能開發(fā)、問題排查和測試用例的驗證來說,都是極大的優(yōu)勢。

到此這篇關(guān)于docker-compose 搭建redis集群(三臺服務(wù)器,每臺服務(wù)器上一主一從)的文章就介紹到這了,更多相關(guān)docker-compose 搭建redis集群內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker搭建etcd集群方式 bitnami/etcd

    docker搭建etcd集群方式 bitnami/etcd

    這篇文章主要介紹了docker搭建etcd集群方式 bitnami/etcd,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 在docker容器中運行flask應(yīng)用過程

    在docker容器中運行flask應(yīng)用過程

    這篇文章主要介紹了在docker容器中運行flask應(yīng)用過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Docker從json-file到syslog的集中化管理實戰(zhàn)指南

    Docker從json-file到syslog的集中化管理實戰(zhàn)指南

    本次實戰(zhàn)通過對比 json-file 與 syslog 兩種日志驅(qū)動,演示了 Docker 容器日志的本地存儲與系統(tǒng)日志集成方式,并成功將默認日志驅(qū)動全局配置為 syslog,實現(xiàn)日志集中化管理,感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • docker部署mysql和nginx服務(wù)的示例詳解

    docker部署mysql和nginx服務(wù)的示例詳解

    這篇文章主要為大家詳細介紹了docker部署mysql和nginx服務(wù)的相關(guān)知識,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-04-04
  • Docker通過容器生成鏡像提交DockerCommit詳解

    Docker通過容器生成鏡像提交DockerCommit詳解

    這篇文章主要介紹了Docker通過容器生成鏡像提交DockerCommit的詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2021-09-09
  • docker刷新配置、修改默認驅(qū)動方式

    docker刷新配置、修改默認驅(qū)動方式

    這篇文章主要介紹了docker刷新配置、修改默認驅(qū)動方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • docker容器內(nèi)運行jupyter映射到本地方式

    docker容器內(nèi)運行jupyter映射到本地方式

    通過在容器內(nèi)指定Jupyter的IP為0.0.0.0,并使用--no-browser參數(shù),可以正確將Jupyter端口映射到本地,具體步驟包括在本地機器運行Docker容器,指定端口映射;在容器內(nèi)運行Jupyter Notebook,設(shè)置--ip和--no-browser參數(shù)(一般還需--allow-root)
    2024-11-11
  • Docker、Docker?Compose部署實踐過程

    Docker、Docker?Compose部署實踐過程

    這篇文章主要介紹了Docker、Docker?Compose部署實踐過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2026-03-03
  • 搭建Docker私有鏡像倉庫的實現(xiàn)步驟

    搭建Docker私有鏡像倉庫的實現(xiàn)步驟

    私有鏡像倉庫可以更好地管理和控制鏡像的訪問和使用,提高開發(fā)和部署效率,減少網(wǎng)絡(luò)延遲和不穩(wěn)定因素的影響,本文主要介紹了搭建私有鏡像倉庫,感興趣的可以了解一下
    2024-12-12
  • 快速安裝openshift的步驟詳解

    快速安裝openshift的步驟詳解

    今天小編就為大家分享一篇關(guān)于快速安裝openshift的步驟詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12

最新評論

左权县| 舟山市| 大埔区| 临湘市| 丰都县| 南投市| 禹州市| 德清县| 仙游县| 开化县| 西吉县| 博野县| 绥芬河市| 武宣县| 大名县| 郓城县| 鹿邑县| 拜城县| 宁城县| 禹城市| 裕民县| 合江县| 青铜峡市| 汉沽区| 上栗县| 永川市| 沁源县| 襄城县| 同江市| 鄄城县| 扎兰屯市| 鸡东县| 沙田区| 铜陵市| 五大连池市| 马鞍山市| 年辖:市辖区| 淳安县| 沭阳县| 嘉峪关市| 清水县|