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

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

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

1、前言

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

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

192.168.10.128
192.168.10.129
192.168.10.130

2、準(zhǔn)備工作

2.1、Docker 安裝

通過(guò)以下指令進(jìn)行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)}庫(kù)
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)建

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

#!/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文件

我們需要為每個(gè) Redis 節(jié)點(diǎn)創(chuàng)建獨(dú)立的配置文件,以下是 redis.conf 的示例,其他節(jié)點(diǎn)的配置文件類似,只需要修改端口和節(jié)點(diǎn)名稱。為了方便操作,同樣通過(guò)shell腳步來(lái)完成,不同服務(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文件無(wú)法執(zhí)行問(wèn)題解決

在windows下編寫(xiě)的shell腳本,將shell文件拷貝至相應(yīng)服務(wù)器,執(zhí)行過(guò)程中可能會(huì)報(bào)文件不存在錯(cuò)誤,這時(shí)候腳本文件可能執(zhí)行失敗,一個(gè)是權(quán)限問(wèn)題,還有可能是文件問(wè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文件編寫(xiě)

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、啟動(dòng)集群及初始化

4.1 啟動(dòng) Redis 集群

在 redis 目錄下,執(zhí)行以下命令啟動(dòng) Redis 節(jié)點(diǎn):

sudo docker-compose up -d

如果拉取鏡像超時(shí)失敗或者拒絕連接,可能是因?yàn)閐ocker源的原因,修改為國(guó)內(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 集群初始化

集群?jiǎn)?dòng)后,需進(jìn)行集群初始化操作。需要進(jìn)入到任意一個(gè) Redis 容器中,并使用 redis-cli 命令來(lái)創(chuàng)建集群。

// 進(jìn)入任意 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)建成功后連接任意一個(gè)redis節(jié)點(diǎn)
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é)

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

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

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

相關(guān)文章

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

    docker搭建etcd集群方式 bitnami/etcd

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

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

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

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

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

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

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

    Docker通過(guò)容器生成鏡像提交DockerCommit詳解

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

    docker刷新配置、修改默認(rèn)驅(qū)動(dòng)方式

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

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

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

    Docker、Docker?Compose部署實(shí)踐過(guò)程

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

    搭建Docker私有鏡像倉(cāng)庫(kù)的實(shí)現(xiàn)步驟

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

    快速安裝openshift的步驟詳解

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

最新評(píng)論

红河县| 宜兴市| 辽源市| 七台河市| 合川市| 罗源县| 华宁县| 鄂伦春自治旗| 乌恰县| 蓬安县| 台北县| 友谊县| 遂昌县| 桐城市| 彰化市| 溧水县| 军事| 临城县| 花垣县| 和政县| 常宁市| 慈利县| 宿州市| 岑巩县| 西畴县| 自治县| 纳雍县| 长武县| 双牌县| 家居| 方正县| 永宁县| 清涧县| 兴海县| 曲周县| 黑龙江省| 康定县| 陆川县| 永修县| 库尔勒市| 济阳县|