docker部署redis集群


一、查詢最新redis鏡像

docker search redis

 

 

二、下載redis鏡像

docker pull redis

 

 

 

 

三、創建一個文件夾,以及創建redis-cluster.tmpl模板文件

mkdir redis-cluster-d

cd redis-cluster-d

 

port ${PORT}

masterauth 123456

requirepass 123456

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

cluster-announce-ip 172.19.0.1

cluster-announce-port ${PORT}

cluster-announce-bus-port 1${PORT}

appendonly yes

 

參數描述

(1port(端口號)

(2masterauth(設置集群節點間訪問密碼,跟下面一致)

(3requirepass(設置redis訪問密碼)

(4cluster-enabled yes(啟動集群模式)

(5cluster-config-file nodes.conf(集群節點信息文件)

(6cluster-node-timeout 5000redis節點宕機被發現的時間)

(7cluster-announce-ip(集群節點的匯報ip,防止nat,預先填寫為網關ip后續需要手動修改配置文件)

(8cluster-announce-port(集群節點的匯報port,防止nat

(9cluster-announce-bus-port(集群節點的匯報bus-port,防止nat

(10) appendonly yes(開啟aof

 

 

四、 redis-cluster下生成confdata目標,並生成配置信息

執行以下命令,按模板生成文件以及文件夾

for port in `seq 7001 7006`; do \

  mkdir -p ./${port}/conf \

  && PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf \

  && mkdir -p ./${port}/data; \

done

 

 

 

文件結構

 

 

 

 

五、創建6redis容器

for port in `seq 7001 7006`; do

     docker run -d --net=host -v /root/redis-cluster-d/${port}/conf/redis.conf:/etc/redis/redis.conf -v /root/redis-cluster-d/${port}/data:/data --restart always --name=redis-${port}  redis redis-server /etc/redis/redis.conf;

done

 

 

 

 

 

六、進入任意一個已運行的redis容器

docker exec -it redis-7001 bash

 

 

 

執行集群指令

 redis-cli -a 123456 --cluster create 192.168.96.171:7001 192.168.96.171:7002 192.168.96.171:7003 192.168.96.171:7004 192.168.96.171:7005 192.168.96.171:7006 --cluster-replicas 1

 

 

 

 

 

 

 

七、檢查集群狀態

容器內驗證

redis-cli -c -a 123456  -h 192.168.96.171  -p 7001

 

 

 

Centos中驗證

redis-cli -c -a 123456 -h 192.168.96.171 -p 7001

 

 

 

redis-cli -a 123456 --cluster check 192.168.96.171:7001

 

 

 

 

八、如果是准備在公網使用集群,需要修改每一個nodes.conf文件中 myself,master配置的ip地址為公網ip,並重啟

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM