搭建了一个redis集群,三台服务器,三主三从
每个redis的配置如下:(端口路径会有些变化)
port 6379
bind 0.0.0.0
daemonize yes
protected-mode no
pidfile /usr/local/redis/logs/redis_6379.pid
logfile /usr/local/redis/logs/redis_6379.log
cluster-enabled yes
cluster-node-timeout 15000
cluster-config-file "nodes-6379.conf"
dir /usr/local/redis/data
dbfilename redis_6379.rdb
appendonly yes
appendfilename "redis_6379.aof"
经过了节点握手、主从配置、分配槽之后,集群搭建完成。
使用datagrip连接,连接成功。
for i in {1..100}; do redis-cli -p 6379 -c set ${i} ${i}; done #写入100条数据
datagrip可见100条数据,这说明读写测试通过。
故障测试出现问题
关闭任意一个主节点,备用的从节点顶上工作,使用cluster info查看集群状态,显示ok。使用cluster nodes,可见关闭的主节点状态fail,备用的从节点的状态从slave变为master。
问题在于datagrip连接失败,数据不显示
如果关闭的是从节点,集群正常运行,无上述问题。
Linux内核:3.10.0-957.el7.x86_64
redis版本:redis-5.0.5
重启redis
关闭任何一个主节点,集群都能正常工作,能够远程连接,能查看到数据,能写入数据。
可以参考这个https://blog.csdn.net/Long_xu/article/details/127506495