前言
网上这类文章太多了,很多小伙伴都可以搜索来参考着部署,在一台机器上部署,或者在多台机器上部署都一样,不过细节还是有很多差别的,比如 Waiting for the cluster to join 这些问题,而且对于中小企业,可以用于生产环境的集群部署,也各不相同。那么这篇文章就是记录一下 在3台阿里云ECS上,利用docker 部署6个redis(三主三从)的方法(当然你也可以6台机器部署6个Redis,具体看成本 )。
文章中关于docker命令、redis 命令、redis配置文件含义,为什么是三主三从,等问题,如果你是真的要配置redis集群,相信你肯定也都知道是什么意思,如果你不知道…网上有很多答案,这里就不啰嗦了。
1、 拉取Redis镜像
首先你机器上要装上docker,这里不讲了。
我拉取的是最新的redis 镜像
docker pull redis
2、准备工作
我们要选择用配置文件来启动redis,所以要准备好redis的配置文件,我在网上找到了一个
因为每台机器上要部署两个redis ,所以配置文件也要相对应的制作两个
我在机器的home文件夹下制作了一个目录,专门存放redis配置文件和data的,然后就是启动脚本
目录:/home/docker/redis
注意:data文件夹是空的,这里是因为我已经启动了,所以里面有东西了
redis.conf:
port 6379
protected-mode no
pidfile /var/run/redis_6379.pid
masterauth redis123
requirepass redis123
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000
appendonly yes
port 6380
protected-mode no
pidfile /var/run/redis_6380.pid
masterauth redis123
requirepass redis123
cluster-enabled yes
cluster-config-file nodes-6380.conf
cluster-node-timeout 15000
appendonly yes
start.sh
for port in 6379 6380;do
docker run -d -v /home/docker/redis/${port}/conf/redis.conf:/etc/redis/redis.conf:rw -v /home/docker/redis/${port}/data:/data:rw --restart always --name=redis-${port} -p ${port}:${port} -p 1${port}:1${port} redis:latest redis-server /etc/redis/redis.conf;
done
存好之后,三台机器每个机器都要放一份上述文件。不用做任何修改。
3、启动redis
上述准备好以后
1、首先配置好ECS的安全组,把端口打开(如果你只是内网进行,就不需要打开了,如果是外网访问,就需要把端口打开)
2、启动脚本
sh start.sh
4、启动集群
启动成功以后,随便找个redis容器,进入
docker exec -it redis-6379 bash
执行命令
redis-cli -a redis123 --cluster create ip1:6379 ip2:6379 ip3:6379 ip1:6380 ip2:6380 ip3:6380 --cluster-replicas 1
这里把ip1 ip2 ip3 替换成你三台机器的IP 即可
遇到让你输入yes 的时候 输入yes即可。
如果你看到这个页面了,那你redis集群基本就是成功了。