docker搭建redis集群

搭建三主三从redis集群。分片+高可用+负载均衡

1 创建redis网络
[root@iZuf65o9ovhniso4w0oji5Z ~]# docker network create redis --subnet 172.38.0.0/16
[root@iZuf65o9ovhniso4w0oji5Z ~]# docker network ls
NETWORK ID     NAME          DRIVER    SCOPE
ebab00407ee4   bridge        bridge    local
f5ddb2cf2442   host          host      local
9167bc2bd975   mynet         bridge    local
ffecf7ecf421   none          null      local
4ded758c3600   redis         bridge    local
2f62a5163aa1   somenetwork   bridge    local
2 通过脚本创建六个redis配置
for port in $(seq 1 6); \
do \
mkdir -p /mydata/redis/node-${port}/conf
touch /mydata/redis/node-${port}/conf/redis.conf
cat << EOF >/mydata/redis/node-${port}/conf/redis.conf
port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.38.0.1${port}
cluster-announce-port 6379
cluster- announce-bus-port 16379
appendonly yes
EOF
done
3 shell执行
[root@iZuf65o9ovhniso4w0oji5Z ~]# for port in $(seq 1 6); \
> do \
> mkdir -p /mydata/redis/node-${port}/conf
> touch /mydata/redis/node-${port}/conf/redis.conf
> cat << EOF >/mydata/redis/node-${port}/conf/redis.conf
> port 6379
> bind 0.0.0.0
> cluster-enabled yes
> cluster-config-file nodes.conf
> cluster-node-timeout 5000
> cluster-announce-ip 172.38.0.1${port}
> cluster-announce-port 6379
> cluster- announce-bus-port 16379
> appendonly yes
> EOF
> done
[root@iZuf65o9ovhniso4w0oji5Z ~]# cd /mydata
[root@iZuf65o9ovhniso4w0oji5Z mydata]# ls
redis
[root@iZuf65o9ovhniso4w0oji5Z mydata]# cd redis/
[root@iZuf65o9ovhniso4w0oji5Z redis]# ls
node-1  node-2  node-3  node-4  node-5  node-6
[root@iZuf65o9ovhniso4w0oji5Z redis]# cd node-1
[root@iZuf65o9ovhniso4w0oji5Z node-1]# ls
conf
[root@iZuf65o9ovhniso4w0oji5Z node-1]# cd conf/
[root@iZuf65o9ovhniso4w0oji5Z conf]# ls
redis.conf
[root@iZuf65o9ovhniso4w0oji5Z conf]# cat redis.conf 
port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.38.0.11
cluster-announce-port 6379
cluster- announce-bus-port 16379
appendonly yes
[root@iZuf65o9ovhniso4w0oji5Z conf]# 
4 启动
docker run -p 6371:6379 -p 16371:16379 --name redis-1 \
-v /mydata/redis/node-1/data:/data \
-v /mydata/redis/node-1/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.11 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

docker run -p 6371:6379 -p 16371:16379 --name redis-2 \
-v /mydata/redis/node-2/data:/data \
-v /mydata/redis/node-2/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.12 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

docker run -p 6371:6379 -p 16371:16379 --name redis-3 \
-v /mydata/redis/node-3/data:/data \
-v /mydata/redis/node-3/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.13 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

docker run -p 6371:6379 -p 16371:16379 --name redis-4 \
-v /mydata/redis/node-4/data:/data \
-v /mydata/redis/node-4/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.14 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

docker run -p 6371:6379 -p 16371:16379 --name redis-5 \
-v /mydata/redis/node-5/data:/data \
-v /mydata/redis/node-5/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.15 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

docker run -p 6371:6379 -p 16371:16379 --name redis-6 \
-v /mydata/redis/node-6/data:/data \
-v /mydata/redis/node-6/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.16 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
5 	集群搭建
redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值