大概就是这样,首先我的ip useClusterServers().addNodeAddress(strings)
是正确的, 我同样使用的 lettuce连接集群,可以使用.
用 GUI工具连接单个节点也能使用.
大概查了一下这个ip 是用 create命令创建集群是 redis自动生成的配置文件里面的数据, 而每个节点自己配置文件表示自己ip时 会变成这个ip
配置文件加 cluster-announce-ip <外网ip>
docker下暂时解决
Redis集群支持在线迁移槽(slot)和数据来完成水平伸缩,当slot对应的数据从源节点到目标节点迁移过程中,客户端需要做到智能识别,保证键命令可正常执行。
例如当一个slot数据从源节点迁移到目标节点时,期间可能出现一部分数据在源节点,而另一部分在目标节点,当出现该情况时,客户端键命令执行流程将发生变化,如下所示:
ASK重定向整体流程如图所示:
ASK与MOVED虽然都是对客户端的重定向控制,但是有着本质区别。ASK重定向说明集群正在进行slot数据迁移,客户端无法知道什么时候迁移完成,因此只能是临时性的重定向,客户端不会更新slots缓存。但是MOVED重定向说明键对应的槽已经明确指定到新的节点,因此需要更新slots缓存。