redis集群出现宕机没法访问-redis集群管理

2019-03-24 00:02|来源: 网路

先来查看集群节点信息
192.168.56.101:6382> cluster nodes
03596d92625f1b778f29eb4a9128d92809dfd79a 192.168.56.101:6381 master - 0 1468858392134 2 connected 5795-10922
b1939026deb80fedde7bdb22c1df3ecfaa72f608 192.168.56.101:6380 master - 0 1468858393149 5 connected 0-5794 10923-11255
6aa027917d223b8fedd42893a89fb0e2c07c8b27 192.168.56.101:6382 myself,master - 0 0 3 connected 11256-16383


[root@master redis-cluster]# ps -ef | grep redis

root      8921     1  0 Jul18 ?        00:00:08 /usr/local/bin/redis-server 192.168.56.101:6380 [cluster]          
root      8925     1  0 Jul18 ?        00:00:07 /usr/local/bin/redis-server 192.168.56.101:6381 [cluster]          
root      8929     1  0 Jul18 ?        00:00:07 /usr/local/bin/redis-server 192.168.56.101:6382 [cluster]        
root     23289  1785  0 00:13 pts/0    00:00:00 grep redis


把6382的进程kill 掉,再查看集群节点信息,发现6382的状态是disconnected

192.168.56.101:6380> cluster nodes
6aa027917d223b8fedd42893a89fb0e2c07c8b27 192.168.56.101:6382 master,fail - 1468858541215 1468858540912 3 disconnected 11256-16383
03596d92625f1b778f29eb4a9128d92809dfd79a 192.168.56.101:6381 master - 0 1468858579644 2 connected 5795-10922
b1939026deb80fedde7bdb22c1df3ecfaa72f608 192.168.56.101:6380 myself,master - 0 0 5 connected 0-5794 10923-11255


想向集群中写入数据是没法进行的,提示的错误信息是集群挂掉了

192.168.56.101:6380> set k2 111
(error) CLUSTERDOWN The cluster is down


故障机制

1、 集群中的每个节点都会定期的向其它节点发送PING命令,并且通过有没有收到回复判断目标节点是否下线;
2、 集群中每一秒都会随机选择几个节点,然后选择其中最久没有响应的节点放PING命令;
3、 如果一定时间内目标节点都没有响应,那么该节点就认为目标节点疑似下线;
4、 当集群中的节点超过半数认为该目标节点疑似下线,那么该节点就会被标记为下线;
5、 当集群中的任何一个节点下线,就会导致插槽区有空档,不完整,那么该集群将不可用;
6、 如何解决上述问题?
a) 在Redis集群中可以使用主从模式实现某一个节点的高可用
b) 当该节点(master)宕机后,集群会将该节点的从数据库(slave)转变为(master)继续完成集群服务;


书生参考网络整理


相关问答

更多

使用spring-data-redis集群redis,

用的是什么集群方式,JedisSentinelPool 还是ShardedJedisPool。 如果用的是前者,配置是需要连接sentinel端口的(默认26379),不是连接redis端口(6379)。 或者把spring相关配置文件贴出来一下。 127.0.0.1:26379 127.0.0.1:26380 127.0.0.1:26381

使用spring-data-redis集群redis,

用的是什么集群方式,JedisSentinelPool 还是ShardedJedisPool。 如果用的是前者,配置是需要连接sentinel端口的(默认26379),不是连接redis端口(6379)。 或者把spring相关配置文件贴出来一下。 <!-- 分片式redis集群配置 --> <bean id="jedisShardInfo1" class="redis.clients.jedis.JedisShardInfo"> <constructor-arg name="host" valu ...

Redis怎么做集群

为什么集群? 通常,为了提高网站响应速度,总是把热点数据保存在内存中而不是直接从后端数据库中读取。Redis是一个很好的Cache工具。大型网站应用,热点数据量往往巨大,几十G上百G是很正常的事儿,在这种情况下,如何正确架构Redis呢? 首先,无论我们是使用自己的物理主机,还是使用云服务主机,内存资源往往是有限制的,scale up不是一个好办法,我们需要scale out横向可伸缩扩展,这需要由多台主机协同提供服务,即分布式多个Redis实例协同运行。 其次,目前硬件资源成本降低,多核CPU, ...

redis 集群是哪个版

Redis官方集群(Redis Cluster)推荐4.0以上版本,这个版本对集群做了很多优化和问题修复 其他模式集群 3.2以上即可 redis集群部署过程可参考: Redis集群(Redis Cluster)安装部署

redis 集群是哪个版

Redis官方集群(Redis Cluster)推荐4.0以上版本,这个版本对集群做了很多优化和问题修复 其他模式集群 3.2以上即可 redis集群部署过程可参考: Redis集群(Redis Cluster)安装部署

相关文章

更多

最近更新

更多