首页 > 代码库 > redis-cluster 单个节点不可用

redis-cluster 单个节点不可用

背景:

    公司的音视频 盗版检测业务,使用redis-cluster作为 key-value 数据库, 使用张图片的 特征hash值作key。因为数据量太大,机器有限,集群内没有slaver

问题描述

    线上服务报错 (SCARD 4288594168) of pipeline caused error: MOVED 9239 10.xxx.xx.149:6390,这个端口 是redis集群中一个节点。

   1 使用redis-trib check 10.xxx.xx.149:6390, 报 无法连接的错误

   2 查看 6390节点的log, 报错 Error opening /setting AOF rewrite IPC pipes: Numerical result out of range 

      google了一番,发现这个链接 linkA: http://blog.csdn.net/syq521125/article/details/53006317 里提到了如何解决。

 我按照他的第2种说法 重启了redis, 我的aof文件 4.4G左右,大约几分钟 服务就起来了 ,重新执行redis-trib check 10.xxx.xx.149:6390, 集群已经能访问6390节点了。

我挂掉的这个节点的 内存消耗 已经达到了14.5g, 对应的aof文件4.4G。按照linkA种表达的问题,我需要对数据库的节点进行扩充,使单点的数据量减少。

我将集群中 redis实例数目加倍后,单点的内存消耗 7g左右,文件2G.觉得应该暂时安全了,以我的经验看,10g内存以下,还都是安全的。

 

自己的心理变化

    这是我第一次遇到 线上的数据库挂掉,线上问题,谨小慎微,所以犹豫了1个小时,要不要重启,中间也查了好一会, 发现重启后还行,数据恢复的挺快。

 

redis-cluster 单个节点不可用