【README】 redis集群添加节点报错

[ERR] Node 192.168.163.202:6380 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

【1】 原因

导致异常的主要原因是该节点中默认生成的配置或历史存储数据不一致导致的,清除对应节点的dump.rdb、nodes.conf文件,重启之后即可。

dump.rdb是由Redis服务器自动生成的 默认情况下 每隔一段时间redis服务器程序会自动对数据库做一次遍历,把内存快照写在一个叫做“dump.rdb”的文件里,这个持久化机制叫做SNAPSHOT。有了SNAPSHOT后,如果服务器宕机,重新启动redis服务器程序时redis会自动加载dump.rdb,将数据库状态恢复到上一次做SNAPSHOT时的状态。

【2】解决步骤:

1、停止服务,删除aof/rdb文件;
2、删除nodes.conf
3、必要的情况下执行flushdb。
原文链接: http://www.choupangxia.com/2019/11/07/redis-node-is-not-empty/

【3】报错现场和实际解决方法

1) 把 202:6380 添加到 机器201:6379所在集群,集群master节点的hash为 5571f088f9d8798dd0c2e973ced830c2cd8033a2

[root@centos201 ~]# /usr/local/redis-cluster/bin/redis-trib.rb add-node --slave --master-id 5571f088f9d8798dd0c2e973ced830c2cd8033a2 192.168.163.202:6380 192.168.163.201:6379
>>> Adding node 192.168.163.202:6380 to cluster 192.168.163.201:6379
Connecting to node 192.168.163.201:6379: OK
Connecting to node 192.168.163.203:6379: OK
Connecting to node 192.168.163.202:6379: OK
>>> Performing Cluster Check (using node 192.168.163.201:6379)
M: 5571f088f9d8798dd0c2e973ced830c2cd8033a2 192.168.163.201:6379slots:0-5460 (5461 slots) master0 additional replica(s)
M: 5c0ea563b464e58dd8dc9722cdfcb97a85c44714 192.168.163.203:6379slots:10923-16383 (5461 slots) master0 additional replica(s)
M: 99a3516a03612dba4b73c32e7e1e03ff1145a660 192.168.163.202:6379slots:5461-10922 (5462 slots) master0 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
Connecting to node 192.168.163.202:6380: OK
[ERR] Node 192.168.163.202:6380 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

补充: 对以上命令的说明, 命令作用:为redis集群添加节点 , 把 202:6380 添加到 机器201:6379所在集群,集群master节点的hash为 5571f088f9d8798dd0c2e973ced830c2cd8033a2

2)停止202:6380 redis服务,并在202:6380机器上删除 redis aof文件, nodes.conf 文件; 最后重新启动 202:6380 redis服务

[root@centos202 ~]# ps -ef | grep redis
root        1665       1  0 21:17 ?        00:00:09 /usr/local/bin/redis-server 192.168.163.202:6379 [cluster]
root        1669       1  0 21:17 ?        00:00:07 /usr/local/bin/redis-server 192.168.163.202:6380 [cluster]
root        1673       1  0 21:17 ?        00:00:07 /usr/local/bin/redis-server 192.168.163.202:6381 [cluster]
root        1796    1694  0 23:04 pts/1    00:00:00 grep --color=auto redis
[root@centos202 ~]#
[root@centos202 ~]# kill -9 1669
[root@centos202 ~]#
[root@centos202 ~]# ps -ef | grep redis
root        1665       1  0 21:17 ?        00:00:09 /usr/local/bin/redis-server 192.168.163.202:6379 [cluster]
root        1673       1  0 21:17 ?        00:00:07 /usr/local/bin/redis-server 192.168.163.202:6381 [cluster]
root        1799    1694  0 23:06 pts/1    00:00:00 grep --color=auto redis
[root@centos202 ~]# 
[root@centos202 6380]# cd data/
[root@centos202 data]# ll
total 4
-rw-r--r--. 1 root root   0 Feb 18 21:17 appendonly.aof
-rw-r--r--. 1 root root 229 Feb 18 22:49 nodes-6380.conf
[root@centos202 data]# rm appendonly.aof
rm: remove regular empty file 'appendonly.aof'? y
[root@centos202 data]# ll
total 4
-rw-r--r--. 1 root root 229 Feb 18 22:49 nodes-6380.conf
[root@centos202 data]# rm -rf nodes-6380.conf
[root@centos202 data]# ll
total 0
[root@centos202 data]#
[root@centos202 data]# /usr/local/bin/redis-server /usr/local/redis-cluster/6380/redis.conf
[root@centos202 data]#
[root@centos202 data]# ps -ef | grep redis
root        1665       1  0 21:17 ?        00:00:10 /usr/local/bin/redis-server 192.168.163.202:6379 [cluster]
root        1673       1  0 21:17 ?        00:00:07 /usr/local/bin/redis-server 192.168.163.202:6381 [cluster]
root        1808       1 43 23:07 ?        00:00:01 /usr/local/bin/redis-server 192.168.163.202:6380 [cluster]
root        1812    1694  0 23:07 pts/1    00:00:00 grep --color=auto redis

3) 再次把 202:6380 添加到 机器201:6379所在集群

[root@centos201 ~]# /usr/local/redis-cluster/bin/redis-trib.rb add-node --slave --master-id 5571f088f9d8798dd0c2e973ced830c2cd8033a2 192.168.163.202:6380 192.168.163.201:6379
>>> Adding node 192.168.163.202:6380 to cluster 192.168.163.201:6379
Connecting to node 192.168.163.201:6379: OK
Connecting to node 192.168.163.203:6379: OK
Connecting to node 192.168.163.202:6379: OK
>>> Performing Cluster Check (using node 192.168.163.201:6379)
M: 5571f088f9d8798dd0c2e973ced830c2cd8033a2 192.168.163.201:6379slots:0-5460 (5461 slots) master0 additional replica(s)
M: 5c0ea563b464e58dd8dc9722cdfcb97a85c44714 192.168.163.203:6379slots:10923-16383 (5461 slots) master0 additional replica(s)
M: 99a3516a03612dba4b73c32e7e1e03ff1145a660 192.168.163.202:6379slots:5461-10922 (5462 slots) master0 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
Connecting to node 192.168.163.202:6380: OK
>>> Send CLUSTER MEET to node 192.168.163.202:6380 to make it join the cluster.
Waiting for the cluster to join.
>>> Configure node as replica of 192.168.163.201:6379.
[OK] New node added correctly.

bingo 添加成功。

redis集群添加节点报错Either the node already knows other nodes (check with CLUSTER NODES) or contains some k相关推荐

  1. Redis集群添加节点

    Redis集群添加节点 1:首先把需要添加的节点启动 cd /usr/local/cluster/ mkdir 7006 cp /usr/local/cluster/redis.conf  /usr/ ...

  2. lua脚本在redis集群中执行报错--Lua script attempted to access a non local key in a cluster node...

    EVAL.EVALSHA命令 Redis从2.6.0版本开始提供了eval命令,通过内置的Lua解释器,可以让用户执行一段Lua脚本并返回数据.因为Redis单线程模型的特点,可以保证多个命令的原子性 ...

  3. redis集群关闭 启动报错_使用虚拟机搭建 Redis 集群,实现数据库的负载均衡功能。...

    实操题目:使用虚拟机搭建 Redis 集群,实现数据库的负载均衡功能.并使用图文描述整个过程.先创建集群: ①创建集群需要使用ruby脚本,所以要先安装ruby环境 安装ruby环境:yum inst ...

  4. tidb集群某个节点报错之:node_exporter-9100.service failed

    今天启动集群tidb时出现一个错误,是某个tikv节点报错:node_exporter-9100.service  failed 一个节点的问题会导致整个集群启动失败.去此节点下的日志文件中查找,发现 ...

  5. java连接cdh集群_有一台电脑需要通过beeline的方式连接到CDHclouderahadoop集群,提示报错。...

    有一台电脑需要通过beeline的方式连接到CDHclouderahadoop集群,提示报错. 码农的苦恼 2020-02-24 10:25:48 目前客户端服务器已经开通了3000-60000的端口 ...

  6. Redis集群master节点挂掉之后的处理方式

    大家好,今天分享Redis集群master节点挂掉之后的处理方式 我们前面做的主从复制 是这样的一个结构 要改成这样 将6303的主节点接到6302 127.0.0.1:6303> SLAVEO ...

  7. shell脚本遍历redis集群所有节点日志,并入库到hadoop中,进行数据分析

    shell脚本遍历redis集群所有节点,并入库到hadoop中的数据库中,进行数据分析,在此留存,以备他用 [AAAAAAnilRedis@FXYY-FS-redis2 ~]$ cat /home/ ...

  8. redis集群添加master节点

    按照<redis集群部署>的1~8步骤完成redis配置,并成功启动redis节点. 1.添加新master的节点: redis-trib.rb add-node 192.168.139. ...

  9. PAS集群:PAS集群环境搭建时,新建节点报错:Exceeded node count limit: 1. Please use Primeton product legally, Primeton

    [问题描述] PAS集群环境搭建时,新建节点报错: com.primeton.appserver.l7e.exception.ImprimaturRuntimeException: Error: Ex ...

最新文章

  1. 世界公认最好的记忆方法_全球公认最好的12个教育孩子的方法,值得每个家长收藏学习!...
  2. mysql完成字符串分割
  3. using namespace cv
  4. python csdn_Python制作CSDN免积分下载器
  5. Python静态网页爬虫项目实战
  6. 精简版vb6.0开发入门必备
  7. 二叉树遍历之层次遍历算法入门详解
  8. 一款全面超越ps3的国产游戏机
  9. Nebula Graph - SpringBoot 操作 Nebula
  10. B样条曲线的公式推导及代码实现
  11. 使用 Vue-cli 搭建SPA项目
  12. 以太坊区块链浏览器(二)开发
  13. 对JAVA多态的理解
  14. 日语在线翻译excite网页版
  15. 利用Python进行市场购物篮分析——入门篇
  16. 并发系列三:证明分代年龄、无锁、偏向锁、轻量锁、重(chong)偏向、重(chong)轻量、重量锁
  17. 用VC++6.0编写拨号程序 作者:陈晓东 (转)
  18. python投票系统_python实时投票系统的课设
  19. 吃鸡是python写的吗_吃鸡游戏也是用Python写的?学了Python,120个月年终奖向你招手~...
  20. 湖北生态流量数据采集对接

热门文章

  1. Codeforces Round #733 (Div. 1 + Div. 2) E. Minimax 分情况讨论 + 思维
  2. 【PKUWC2018】随机游走【Min-Max容斥】【树形dp】【FWT】
  3. 【每日一题】8月25日题目精讲 XOR-pyramid
  4. 牛客算法周周练4 题解
  5. [ZJOI2015] 地震后的幻想乡(状压dp + 期望)
  6. P1975-[国家集训队]排队【树状数组套线段树】
  7. jzoj6375-华灵「蝶妄想」【结论题】
  8. P1375-小猫【卡特兰数】
  9. [XSY] 最长公共子串对(后缀自动机)
  10. 洛谷 P1967货车运输 并查集+贪心 不需要用LCA!