前言:
最近给客户部署项目提供三台机器,需要用到redis就想着部署RedisCluster模式集群,但是找遍了csdn都没找到我想要的。花了好久参考了很多博主的帖子终于让我搞出来了,个人比较菜各位看官老爷见笑。话不多说开搞!!!!!!
安装前准备:
1.在三台机器上分别创建对应配置文件夹,一台机器两个节点(一主一从),命令如下:
机器1: mkdir /mnt/redis/share/redis-node -1/conf
机器1: mkdir /mnt/redis/share/redis-node -2/conf
机器2: mkdir /mnt/redis/share/redis-node -3/conf
机器2: mkdir /mnt/redis/share/redis-node -4/conf
机器3: mkdir /mnt/redis/share/redis-node -5/conf
机器3: mkdir /mnt/redis/share/redis-node -6/conf
2.在新建好的文件夹内编辑对应的配置文件 6个文件夹6份
机器1: vim /mnt/redis/share/redis-node -1/conf/redis.conf
机器1: vim /mnt/redis/share/redis-node -2/conf/redis.conf
机器2:略
机器3:略
配置文件内容在下面:复制粘贴的时候注意看写的注释作出相应更改。
#端口 比如机器1 节点1 6381 节点2 6382 机器2 节点1 6383 节点2 6384 机器3 略 port 6381 #非保护模式 protected-mode no #启用集群模式 cluster-enabled yes cluster-config-file nodes-6381.conf #超时时间 cluster-node-timeout 15000 #集群各节点IP地址,记得修改为节点所在的ip地址 cluster-announce-ip 192.168.21.128 #集群节点映射端口,记得修改为节点端口 cluster-announce-port 6381 #集群总线端口 这里记得修改例如1+port cluster-announce-bus-port 16381 #开启aof持久化策略 appendonly yes #后台运行 #daemonize yes #进程号存储 这里记得修改例如 port pidfile /var/run/redis_6381.pid #外部访问 bind 0.0.0.0 #集群加密 #masterauth itheima #requirepass itheima
安装:
docker pull redis/redis:7.0.1
启动:
注意:启动命令可能由于自动换行问题复制粘贴的时候先粘贴到txt上并修改成一行。
机器1 节点1
docker run -d -it --restart always --name redis-node-1 -p 6381:6381 -p 16381:16381 -v /mnt/redis/share/redis-node -1/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /mnt/redis/share/redis-node-1/data:/data --privileged=true redis:7.0.1 redis-server /usr/local/etc/redis/redis.conf
机器1 节点2
docker run -d -it --restart always --name redis-node-2 -p 6382:6382 -p 16382:16382 -v /mnt/redis/share/redis-node -2/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /mnt/redis/share/redis-node-2/data:/data --privileged=true redis:7.0.1 redis-server /usr/local/etc/redis/redis.conf
机器2 机器3 略
集群连接:
进入任意节点即可:
docker exec -it redis-node-1 bash
redis-cli --cluster create xxx.xxx.xxx:6381 xxx.xxx.xxx:6382 xxx.xxx.xxx:6383 xxx.xxx.xxx:6384 xxx.xxx.xxx:6385 xxx.xxx.xxx:6386 --cluster-replicas 1
输入:yes
出现下图大功告成:
踩坑报错:
如果出现 waiting for the cluster to join
检查配置文件 cluster-announce-ip 是否填写正确 以及端口节点对应端口是否开放。