解决方案:
每个Redis集群节点都需要打开两个TCP连接。
用于为客户端提供服务的普通Redis TCP端口,例如6379,加上通过向数据端口添加10000获得的端口:16379,第二个端口用于集群总线,即使用二进制协议的节点到节点通信通道。节点使用集群总线进行故障检测,配置更新,故障转移授权等。客户端永远不应尝试与集群总线端口通信,但始终使用正常的Redis命令端口,但请确保在防火墙中打开两个端口,否则Redis群集节点将无法通信。
正式因为上面的解释,可以知道出现该问题的解决方案就是先放通防火墙的端口,再放开安全组中的端口。
出现下面问题:
去启动时绑定的data目录下把数据删除即可.
简单记录一下通过docker配置启动流程
docker run -d --network=host --name redis-node1 -v /data/redis/data/node1:/data -v /data/redis/conf/redis.conf:/etc/redis/redis.conf docker.io/redis:latest redis-server /etc/redis/redis.conf --cluster-enabled yes --cluster-config-file nodes-node-1.conf --port 6379
docker run -d --network=host --name redis-node2 -v /data/redis/data/node2:/data -v /data/redis/conf/redis.conf:/etc/redis/redis.conf docker.io/redis:latest redis-server /etc/redis/redis.conf --cluster-enabled yes --cluster-config-file nodes-node-2.conf --port 6380
docker run -d --network=host --name redis-node3 -v /data/redis/data/node3:/data -v /data/redis/conf/redis.conf:/etc/redis/redis.conf docker.io/redis:latest redis-server /etc/redis/redis.conf --cluster-enabled yes --cluster-config-file nodes-node-3.conf --port 6381
-d:后台启动
–network=host:网络模式请参见官网:https://docs.docker.com/network/
-v:文件挂载,左边为宿主机地址,右边为容器内地址
–port:–network=host模式下的端口号
其他参数参见网上资源。
进入任意一个容器
docker exec -it redis-node1 /bin/bash
进入容器执行:
redis-cli --cluster create 119.91.155.243:6379 119.91.155.243:6380 119.91.155.243:6381 --cluster-replicas 0