docker redis5.0.5 集群

安装docker

yum install docker

systemctl start docker

下载redis5.0.5镜像

docker pull redis:5.0.5

进入home目录

cd /home

创建 redis 节点目录

mkdir redis-cluster

编写实现文件

vim redis-cluster.tmpl

 

port ${PORT}

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

cluster-announce-ip 39.10X.XX.XX //自己服务器IP

cluster-announce-port ${PORT}

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

appendonly yes

查看

cat /home/redis-cluster/redis-cluster.tmpl

构建redis网络

docker network create redis-net

查看

docker network ls

执行上面的tmpl 文件  传入参数 7000 - 7005 作为redis不同单节点的端口

for port in `seq 7000 7005`; do \

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

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

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

done

授权 文件夹 权限

chmod 777 7000 7001 7002 7003 7004 7005

启动docker redis镜像  将会启动 7000 7001 7002 7003 7004 7005 五个节点的redis

for port in `seq 7000 7005`; do \

docker run -d -ti -p ${port}:${port} -p 1${port}:1${port} \

--privileged=true \

-v /home/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \

-v /home/redis-cluster/${port}/data:/data \

--restart always --name redis-${port} --net redis-net \

--sysctl net.core.somaxconn=1024 redis:5.0.5 redis-server /usr/local/etc/redis/redis.conf; \

done

查看 IP 及 端口 (docker内网)

for port in `seq 7000 7005`; do \

echo -n "$(docker inspect --format '{{ (index .NetworkSettings.Networks "redis-net").IPAddress }}' "redis-${port}")":${port}"  "  ; \

done

执行后展示(可能不一样,这里的IP地址,用于下面)

172.18.0.2:7000  172.18.0.3:7001  172.18.0.4:7002  172.18.0.5:7003  172.18.0.6:7004  172.18.0.7:7005

进入 7000 容器

docker exec -it redis-7000 bash

设置 三主 三从

redis-cli --cluster create 172.18.0.2:7000 172.18.0.3:7001 172.18.0.4:7002 172.18.0.5:7003 172.18.0.6:7004 172.18.0.7:7005 --cluster-replicas 1

遇到提示 输入 yes

遇到 等待join 需要新开一个 ssh 窗口 执行以下命令 如果成功了,就不用了

分别进入 其他redis容器 加入 7000 的集群中

docker exec -it redis-7001 bash

redis-cli -p 7001 cluster meet 172.18.0.2 7000

exit

 

docker exec -it redis-7002 bash

redis-cli -p 7002 cluster meet 172.18.0.2 7000

exit

 

docker exec -it redis-7003 bash

redis-cli -p 7003 cluster meet 172.18.0.2 7000

exit

 

docker exec -it redis-7004 bash

redis-cli -p 7004 cluster meet 172.18.0.2 7000

exit

 

docker exec -it redis-7005 bash

redis-cli -p 7005 cluster meet 172.18.0.2 7000

exit

查看

docker exec -it redis-7000 bash

redis-cli -p 7000 cluster nodes

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值