docker部署redis cluster集群
一、准备相关配置文件
1、下载redis配置文件
sudo wget http://download.redis.io/redis-stable/redis.confwget http://download.redis.io/redis-stable/redis.conf
2、修改redis.conf配置文件内容
# bind 127.0.0.1
protected-mode no
port 6379
appendonly yes
aof-use-rdb-preamble yes
cluster-enabled yes
cluster-node-timeout 15000
#宿主机IP
cluster-announce-ip 127.0.0.1
cluster-announce-port 6379
cluster-announce-bus-port 16379
3、创建docker容器挂载目录
sudo mkdir -p /home/docker/redis/redis-mastar \
sudo mkdir -p /home/docker/redis/redis-mastar/data \
sudo mkdir -p /home/docker/redis/redis-salve \
sudo mkdir -p /home/docker/redis/redis-salve/data \
4、复制到容器挂载目录
注:修改redis启动端口与集群总线端口
sudo cp redis.conf /home/docker/redis/redis-mastar/
sudo cp redis.conf /home/docker/redis/redis-salve/
二、启动容器
sudo docker run \
-d \
-p 6379:6379 \
-p 16379:16379 \
--network host \
--name redis-master \
-v /home/docker/redis/redis-mastar/redis.conf:/etc/redis/redis.conf \
-v /home/docker/redis/redis-mastar/data:/data \
redis:6.0 \
redis-server /etc/redis/redis.conf
sudo docker run \
-d \
-p 6378:6378 \
-p 16378:16378 \
--network host \
--name redis-salve \
-v /home/docker/redis/redis-salve/redis.conf:/etc/redis/redis.conf \
-v /home/docker/redis/redis-salve/data:/data \
redis:6.0 \
redis-server /etc/redis/redis.conf
三、初始化集群
1、进入任意redis容器进步
sudo docker exec -it redis-master /bin/sh
2、初始化集群
(1)自动分配
redis cluster 随机分配主从节点
redis-cli --cluster create IP:6379 IP:6378 IP:6379 IP:6378 IP:6379 IP:6378 --cluster-replicas 1
(2)手动分配
先创建主节点
redis-cli --cluster create IP:6379 IP:6379 IP:6379 --cluster-replicas 0
查看master-id
redis-cli -c
cluster nodes
705090d61b6d9f12e33d32190aec16585f56d5da IP:6379@16379 myself,master - 0 1595905454000 7 connected 0-5460
74d7f803ce18c1d986d1c3a7c6cca363f7bb2270 IP:6379@16379 master - 0 1595905455589 2 connected 5461-10922
40a99285bff9bff12a454f702935507c29fcb490 IP:6379@16379 master - 0 1595905454000 4 connected 10923-16383
将salve节点添加到指定master节点
redis-cli --cluster add-node IP:6378 IP:6379 --cluster-slave --cluster-master-id 705090d61b6d9f12e33d32190aec16585f56d5da
redis-cli --cluster add-node IP:6378 IP:6379 --cluster-slave --cluster-master-id 74d7f803ce18c1d986d1c3a7c6cca363f7bb2270
redis-cli --cluster add-node IP:6378 IP:6379 --cluster-slave --cluster-master-id 40a99285bff9bff12a454f702935507c29fcb490
四、验证集群
1、进入redis命令行
redis-cli -c
2、查看集群状态
cluster nodes
显示如下,说明redis集群搭建成功
524717d3f80d315329747353c526a3f4c7c06f1e 123.56.18.37:6379@16379 myself,slave 74d7f803ce18c1d986d1c3a7c6cca363f7bb2270 0 1595905453000 2 connected
705090d61b6d9f12e33d32190aec16585f56d5da 47.95.228.247:6379@16379 master - 0 1595905454000 7 connected 0-5460
9f3b2e1dd1de12e79607679fb66ffa52168c48b5 47.95.238.119:6378@16378 slave 40a99285bff9bff12a454f702935507c29fcb490 0 1595905454000 4 connected
74d7f803ce18c1d986d1c3a7c6cca363f7bb2270 47.95.228.247:6378@16378 master - 0 1595905455589 2 connected 5461-10922
27730588ee369f8bba4413d62c4a2d925ade27f7 47.95.238.119:6379@16379 slave 705090d61b6d9f12e33d32190aec16585f56d5da 0 1595905454586 7 connected
40a99285bff9bff12a454f702935507c29fcb490 123.56.18.37:6378@16378 master - 0 1595905454000 4 connected 10923-16383