- 3主3從的方式
- 使用命令或手動一個個創建
for port in $(seq 7001 7006); \
do \
mkdir -p /software/docker/redis/node-${port}/conf
touch /software/docker/redis/node-${port}/conf/redis.conf
cat << EOF >/software/docker/redis/node-${port}/conf/redis.conf port ${port}
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 10.211.55.6
cluster-announce-port ${port}
cluster-announce-bus-port 1${port}
appendonly yes
EOF
docker run -p ${port}:${port} -p 1${port}:1${port} --name redis-${port} \ -v /software/docker/redis/node-${port}/data:/data \
-v /software/docker/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \ -d redis:latest redis-server /etc/redis/redis.conf; \
done
- 建立redis集群
docker exec -it redis-7001 bash
redis-cli --cluster create 10.211.55.6:7001 10.211.55.6:7002 10.211.55.6:7003 10.211.55.6:7004 10.211.55.6:7005 10.211.55.6:7006 --cluster-replicas 1
Snipaste_2024-03-10_09-05-39.jpg
- 測試
#隨便進入一個redis容器
docker exec -it redis-7001 /bin/bash
#使用redis-cli cluster方式連接,然后使用get set測試就可以了
redis-cli -c -h 10.211.55.6 -p 7001
#獲取集群信息
cluster info
#獲取群節點信息
cluster nodes
#主節點宕機,slave會自動提升為master,主節點恢復后會變成slave