欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

192.168.10.128
192.168.10.129
192.168.10.130

2、準(zhǔn)備工作

2.1、Docker 安裝

通過以下指令進(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)}庫
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)名稱。為了方便操作,同樣通過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í)行過程中可能會(huì)報(bào)文件不存在錯(cuò)誤,這時(shí)候腳本文件可能執(zhí)行失敗,一個(gè)是權(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、啟動(dòng)集群及初始化

4.1 啟動(dòng) Redis 集群

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

sudo docker-compose up -d

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

集群啟動(dòng)后,需進(jìn)行集群初始化操作。需要進(jìn)入到任意一個(gè) Redis 容器中,并使用 redis-cli 命令來創(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é)

通過上述步驟,我們已經(jīng)使用 Docker Compose 成功搭建了一個(gè) Redis 集群。這種方式特別適合用于開發(fā)和測試環(huán)境,因?yàn)樗呐渲煤唵?、部署快速,非常適合本地或測試環(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)勢主要在于快速構(gòu)建和靈活配置。通過 Compose 文件,可以定義多個(gè) Redis 實(shí)例的網(wǎng)絡(luò)、端口和數(shù)據(jù)卷,實(shí)現(xiàn)一鍵啟動(dòng)整個(gè)集群的需求。在開發(fā)和測試階段,這種方式能夠節(jié)省大量時(shí)間,便于模擬復(fù)雜的集群環(huán)境,幫助開發(fā)者驗(yàn)證 Redis 集群在不同場景下的表現(xiàn)和問題。Docker Compose 對資源的隔離性和可移植性,使得 Redis 集群的搭建和銷毀變得極其簡單,這對于功能開發(fā)、問題排查和測試用例的驗(yàn)證來說,都是極大的優(yōu)勢。

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

相關(guān)文章

  • Docker安裝配置Oracle詳細(xì)步驟記錄(以作持久化處理)

    Docker安裝配置Oracle詳細(xì)步驟記錄(以作持久化處理)

    docker是一個(gè)用Go語言實(shí)現(xiàn)的開源項(xiàng)目,可以讓我們方便的創(chuàng)建和使用容器,下面這篇文章主要給大家介紹了關(guān)于Docker安裝配置Oracle詳細(xì)步驟的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • 詳解Docker中容器的備份、恢復(fù)和遷移

    詳解Docker中容器的備份、恢復(fù)和遷移

    本篇文章主要介紹了詳解Docker中容器的備份、恢復(fù)和遷移 ,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • Docker 配置阿里云容器服務(wù)操作

    Docker 配置阿里云容器服務(wù)操作

    這篇文章主要介紹了Docker 配置阿里云容器服務(wù)操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • docker?run?-d和docker?run?-it的區(qū)別詳解

    docker?run?-d和docker?run?-it的區(qū)別詳解

    記得第一次接觸docker的時(shí)候,教程中寫著docker?run?-it之類的命令,當(dāng)時(shí)對這個(gè)-it選項(xiàng)是一知半解,下面這篇文章主要給大家介紹了關(guān)于docker?run?-d和docker?run?-it的區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • Docker搭建并啟動(dòng)Logstash的實(shí)現(xiàn)方式

    Docker搭建并啟動(dòng)Logstash的實(shí)現(xiàn)方式

    這篇文章主要介紹了Docker搭建并啟動(dòng)Logstash的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • IDEA遠(yuǎn)程連接Docker的流程步驟

    IDEA遠(yuǎn)程連接Docker的流程步驟

    這篇文章主要介紹了IDEA遠(yuǎn)程連接Docker的流程步驟,文中通過代碼示例給大家介紹的非常詳細(xì),對大家學(xué)習(xí)IDEA遠(yuǎn)程連接Docker有一定的幫助,需要的朋友可以參考下
    2024-10-10
  • Docker 命令教程(附中文解釋)

    Docker 命令教程(附中文解釋)

    這篇文章主要介紹了Docker 命令教程的相關(guān)資料,在學(xué)習(xí)Docker的過程中,特地把所以命令實(shí)驗(yàn)了一番并整理,希望大家盡快掌握此部分的知識(shí),有需要的小伙伴可以參考下
    2016-10-10
  • Docker服務(wù)遷移的實(shí)現(xiàn)

    Docker服務(wù)遷移的實(shí)現(xiàn)

    本文詳細(xì)介紹了如何備份和遷移Docker服務(wù)數(shù)據(jù),包括停止Docker服務(wù)、備份Docker數(shù)據(jù)和DockerCompose文件,使用SCP或Rsync傳輸備份文件,以及在新服務(wù)器上恢復(fù)Docker數(shù)據(jù)和設(shè)置權(quán)限,文中提供了詳細(xì)的命令和步驟,確保數(shù)據(jù)遷移過程順利進(jìn)行
    2024-10-10
  • 使用docker命令不需要敲sudo的操作

    使用docker命令不需要敲sudo的操作

    這篇文章主要介紹了使用docker命令不需要敲sudo的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 在Docker容器中部署靜態(tài)網(wǎng)頁的方法教程

    在Docker容器中部署靜態(tài)網(wǎng)頁的方法教程

    這篇文章主要給大家介紹了在Docker容器中部署靜態(tài)網(wǎng)頁的方法教程,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-06-06

最新評論