目錄
1. 叢集配置
2.寫redis.conf
3. 在每個redis-*資料夾下建立redis.conf文件,並寫入以下內容:
4.編寫docker-compose.yml檔
5.開啟叢集
6.測試
6.1 查看節點屬性
6.2 檢視節點資訊
6.3 插入一個值
7.新增密碼:
7.1 編輯redis.conf檔
7.2 編輯docker-compose.yml檔案
7.3 連線叢集
首頁 資料庫 Redis Docker-Compose如何搭建Redis集群

Docker-Compose如何搭建Redis集群

May 30, 2023 pm 04:46 PM
redis docker docker-compose

1. 叢集配置

  • 3主3從

  • 由於只用於測試,故我這裡只用1台伺服器進行模擬

redis列表

Docker-Compose如何搭建Redis集群

2.寫redis.conf

在server上建立一個目錄用於存放redis叢集部署檔案。這裡我放的路徑為/root/redis-cluster

在/opt/docker/redis-cluster目錄下建立redis-1,redis-2,redis-3,redis-4,redis-5, redis-6資料夾

mkdir -p /opt/docker/redis-cluster/{redis-1,redis-2,redis-3,redis-4,redis-5,redis-6}
 
#创建持久化目录
mkdir -p /opt/docker/redis-cluster/redis-1/data
mkdir -p /opt/docker/redis-cluster/redis-2/data
mkdir -p /opt/docker/redis-cluster/redis-3/data
mkdir -p /opt/docker/redis-cluster/redis-4/data
mkdir -p /opt/docker/redis-cluster/redis-5/data
mkdir -p /opt/docker/redis-cluster/redis-6/data
登入後複製

3. 在每個redis-*資料夾下建立redis.conf文件,並寫入以下內容:

cluster-enabled yes # 开启集群
cluster-config-file nodes.conf # 集群配置文件
cluster-node-timeout 5000 # 集群节点多少时间未响应视为该节点丢失
appendonly yes
port 6379 # redis监听端口
masterauth passwd123  #设置master节点密码
requirepass passwd123 #设置密码
登入後複製

注意:port值不能都為6379 ,根據上面redis列表設定的連接埠號,依序為redis-1 ~ redis-6設定6379~6384埠號

4.編寫docker-compose.yml檔

這裡直接使用daocloud提供的redis映像位址daocloud.io/library/redis:6.0.4

#在/root/redis-cluster資料夾下建立docker-compose.yml檔案。

docker-compose.yml檔案內容如下:

version: '3.1'
services:
  # redis1配置
  redis1:
    image: daocloud.io/library/redis:6.0.4
    container_name: redis-1
    restart: always
    network_mode: "host"
    volumes:
      - /opt/docker/redis-cluster/redis-1/data:/data
      - /opt/docker/redis-cluster/redis-1/redis.conf:/usr/local/etc/redis/redis.conf
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
  # redis2配置
  redis2:
    image: daocloud.io/library/redis:6.0.4
    container_name: redis-2
    restart: always
    network_mode: "host"
    volumes:
      - /opt/docker/redis-cluster/redis-2/data:/data
      - /opt/docker/redis-cluster/redis-2/redis.conf:/usr/local/etc/redis/redis.conf
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
  # redis3配置
  redis3:
    image: daocloud.io/library/redis:6.0.4
    container_name: redis-3
    restart: always
    network_mode: "host"
    volumes:
      - /opt/docker/redis-cluster/redis-3/data:/data
      - /opt/docker/redis-cluster/redis-3/redis.conf:/usr/local/etc/redis/redis.conf
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
  # redis4配置
  redis4:
    image: daocloud.io/library/redis:6.0.4
    container_name: redis-4
    restart: always
    network_mode: "host"
    volumes:
      - /opt/docker/redis-cluster/redis-4/data:/data
      - /opt/docker/redis-cluster/redis-4/redis.conf:/usr/local/etc/redis/redis.conf
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
  # redis5配置
  redis5:
    image: daocloud.io/library/redis:6.0.4
    container_name: redis-5
    restart: always
    network_mode: "host"
    volumes:
      - /opt/docker/redis-cluster/redis-5/data:/data
      - /opt/docker/redis-cluster/redis-5/redis.conf:/usr/local/etc/redis/redis.conf
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
  # redis6配置
  redis6:
    image: daocloud.io/library/redis:6.0.4
    container_name: redis-6
    restart: always
    network_mode: "host"
    volumes:
      - /opt/docker/redis-cluster/redis-6/data:/data
      - /opt/docker/redis-cluster/redis-6/redis.conf:/usr/local/etc/redis/redis.conf
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
登入後複製

啟動容器,執行指令:

#启动容器
docker-compose -f xxx.yaml up -d
登入後複製

Docker-Compose如何搭建Redis集群

5.開啟叢集

隨便找一個容器進入,這裡我選擇redis-1進入。進入容器後,輸入如下指令開啟叢集:

redis-cli --cluster create 192.168.66.180:6379 \
192.168.66.180:6380 \
192.168.66.180:6381 \
192.168.66.180:6382 \
192.168.66.180:6383 \
192.168.66.180:6384 \
--cluster-replicas 1
登入後複製

Docker-Compose如何搭建Redis集群

出現下圖即為成功。

Docker-Compose如何搭建Redis集群

6.測試

使用redis-cli指令,連接叢集中任意節點。我隨便在一台能夠ping通集群所在IP的電腦上進行了測試,這裡我使用了本機

6.1 查看節點屬性

redis-cli -c -h 192.168.66.180 -p 6379
192.168.66.180:6379> cluster info
登入後複製

顯示為如下圖,即為集群健康狀態

Docker-Compose如何搭建Redis集群

6.2 檢視節點資訊

cluster nodes
登入後複製

Docker-Compose如何搭建Redis集群

#注意看圖中的slave,master,myself等關鍵字。

Docker-Compose如何搭建Redis集群

6.3 插入一個值

192.168.66.180:6379> set test 'hello world'
-> Redirected to slot [6918] located at 192.168.66.180:6380
OK
192.168.66.180:6380>
登入後複製

Docker-Compose如何搭建Redis集群

#注意:這裡根據切片自動切換到了該資料分片所在的節點上,所以下面可以看到連接的節點變成192.168.1.4:6380

get test

168.66.180:6379> set test 'hello world'
-> Redirected to slot [6918] located at 192.168.66.180:6380
OK
192.168.66.180:6380> get test
"hello world"
192.168.66.180:6380>
登入後複製

這裡因為就是在該資料所在分片上進行的查詢,所以連接節點沒有改變。

7.新增密碼:

7.1 編輯redis.conf檔

#为redis.conf文件添加如下配置。这里设置密码为123456
masterauth 123456
requirepass 123456
登入後複製

7.2 編輯docker-compose.yml檔案

#为docker-compose.yml中每个容器添加如下配置:
environment:
  - REDISCLI_AUTH=123456
登入後複製

7.3 連線叢集

redis-cli -c -h 192.168.66.180 -p 6379 -a 123456
登入後複製

以上是Docker-Compose如何搭建Redis集群的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

docker鏡像源怎麼換國內 docker鏡像源怎麼換國內 Apr 15, 2025 am 11:30 AM

可切換到國內鏡像源,步驟如下:1. 編輯配置文件 /etc/docker/daemon.json,添加鏡像源地址;2. 保存退出後,重啟 Docker 服務 sudo systemctl restart docker,即可提升鏡像下載速度和穩定性。

docker版本怎麼看 docker版本怎麼看 Apr 15, 2025 am 11:51 AM

要獲取 Docker 版本,您可以執行以下步驟:運行 Docker 命令“docker --version”來查看客戶端和服務器版本。對於 Mac 或 Windows,還可以通過 Docker Desktop GUI 的“版本”選項卡或“關於 Docker Desktop”菜單查看版本信息。

docker怎麼創建鏡像 docker怎麼創建鏡像 Apr 15, 2025 am 11:27 AM

創建 Docker 鏡像步驟:編寫包含構建指令的 Dockerfile。在終端中構建鏡像,使用 docker build 命令。標記鏡像,使用 docker tag 命令分配名稱和標籤。

docker怎麼更新鏡像 docker怎麼更新鏡像 Apr 15, 2025 pm 12:03 PM

更新 Docker 鏡像的步驟如下:拉取最新鏡像標記新鏡像為特定標籤刪除舊鏡像(可選)重新啟動容器(如果需要)

docker怎麼查看日誌 docker怎麼查看日誌 Apr 15, 2025 pm 12:24 PM

查看 Docker 日誌的方法包括:使用 docker logs 命令,例如:docker logs CONTAINER_NAME使用 docker exec 命令運行 /bin/sh 並查看日誌文件,例如:docker exec -it CONTAINER_NAME /bin/sh ; cat /var/log/CONTAINER_NAME.log使用 Docker Compose 的 docker-compose logs 命令,例如:docker-compose -f docker-com

docker desktop怎麼用 docker desktop怎麼用 Apr 15, 2025 am 11:45 AM

如何使用 Docker Desktop? Docker Desktop 是一款工具,用於在本地機器上運行 Docker 容器。其使用步驟包括:1. 安裝 Docker Desktop;2. 啟動 Docker Desktop;3. 創建 Docker 鏡像(使用 Dockerfile);4. 構建 Docker 鏡像(使用 docker build);5. 運行 Docker 容器(使用 docker run)。

docker鏡像怎麼保存 docker鏡像怎麼保存 Apr 15, 2025 am 11:54 AM

在 Docker 中保存鏡像,可以使用 docker commit 命令創建新的鏡像,包含指定容器的當前狀態,語法為:docker commit [選項] 容器ID 鏡像名稱。要保存鏡像到倉庫,可以使用 docker push 命令,語法為:docker push 鏡像名稱[:標籤]。要導入已保存的鏡像,可以使用 docker pull 命令,語法為:docker pull 鏡像名稱[:標籤]。

docker容器名稱怎麼查 docker容器名稱怎麼查 Apr 15, 2025 pm 12:21 PM

可以通過以下步驟查詢 Docker 容器名稱:列出所有容器(docker ps)。篩選容器列表(使用 grep 命令)。獲取容器名稱(位於 "NAMES" 列中)。

See all articles