docker-compose搭建redis集群及可用性实践


集群搭建概述
redis一般需要6个节点才能组成完整的高可用集群,这里我们使用docker-compose来快速搭建集群。 集群搭建一般分为三个步骤:

准备节点
节点握手
分配槽
步骤一:准备节点
从GitHub下载代码
项目GitHub地址:github.com/will

注意
由于代码更新,在配置文件中手动设置了容器名称,所以文章和代码中的容器名有区别,比如文章中的redis-cluster_redis-cluster-6380_1,在代码和实际运行中是node-80,文章中的redis-cluster_redis-cluster-6381_1,在代码和实际运行中是node-81

开启后台服务,启动所有节点
进入redis-cluster-docker目录,执行docker-compose up -d

检查当前集群状况
输入cluster info查看集群信息,此时已为 ok,再测试一下set和get,另外可以看到,结点会自己切换,并且6061端口set和数据可以在6062端口get到


八 设置集群密码
使用redis-trib.rb工具构建集群,集群构建完成前不要配置密码,集群构建完毕再通过config set + config rewrite命令逐个机器设置密码
如果对集群设置密码,那么requirepass和masterauth都需要设置,否则发生主从切换时,就会遇到授权问题
各个节点的密码都必须一致,否则Redirected就会失败
具体指令如下:

设置masterauth
config set masterauth 密码


设置requirepass
config set requirepass 密码

验证密码,以继续操作
auth LinShen

回写到文件,使其永久生效(如果这里出现Permission denied,则说明Dockerfile少了RUN chmod 777 /usr/local/etc/redis/redis.conf)
config rewrite
这里写图片描述

这里写图片描述

这里写图片描述

然后再使用docker exec指令进入容器内部看一下masterauth和requirepass是否写入到文件里

docker exec -it 容器ID /bin/bash

cat指令查看

cat /usr/local/etc/redis/redis.conf

得到如下图

可以看到masterauth和requirepass被追加到文件的最后,即使重启密码也还生效

至此,利用docker-compose组建redis集群结束

可以看到,其实docker-compose起的作用并不大,因为在单机上部署redis集群确实没什么实际意义,但是,你完全可以把slave结点放到不同的服务器上,再通过docker的redis-trib容器来连接,十分灵活和方便.
https://blog.csdn.net/alinyua/article/details/80936940

https://blog.csdn.net/weixin_41622183/article/details/86600515

https://github.com/LuckyToMeet-Dian-N/DevelopmentUtils

你可能感兴趣的:(python,AI,BlockChain,Go,Cloud,computing,BigData)