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

【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 添加成功。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/330162.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringMVC 参数校验

SpringMVC 可以通过使用注解的方式对参数进行校验&#xff0c;省去参数校验的代码 引入依赖 Spring项目需引入 <dependency><groupId>org.hibernate.validator</groupId><artifactId>hibernate-validator</artifactId><version>6.0.7.F…

linux入门_Linux超详细0基础入门篇(一)

首先要感谢大康老师对我在Linux操作系统上的教导。今天来讲一下用途广泛的Linux的基础入门教程仅仅是做入门使用&#xff0c;如果想更加深入的学习那就需要自己做探索了。本次例子使用的是kali linux(ARM架构)是基于Debian的Linux发行版本&#xff0c;可能会与其他版本操作有所…

教你如何监控 Java 线程池运行状态

转载自 干货 | 教你如何监控 Java 线程池运行状态 之前写过一篇 Java 线程池的使用介绍文章《线程池全面解析》&#xff0c;全面介绍了什么是线程池、线程池核心类、线程池工作流程、线程池分类、拒绝策略、及如何提交与关闭线程池等。 但在实际开发过程中&#xff0c;在线程池…

算法设计与分析:(一)时间复杂度分析

数学基础 设f和g是定义域为自然数集N上的函数 存在正整数c、n&#xff0c;使0<f(n)<cg(n)成立&#xff0c;称f(n)的渐进上界是g(n)&#xff0c;记作f(n)O(g(n))存在正整数c、n&#xff0c;使0<cg(n)<f(n)成立&#xff0c;则称f(n)渐进下界是g(n)&#xff0c;记作…

redis集群3种模式

【README】 转自&#xff1a; https://segmentfault.com/a/1190000022808576 &#xff08;好文章&#xff09; Redis 支持三种集群方案 主从复制模式Sentinel&#xff08;哨兵&#xff09;模式Cluster 模式【1】主从复制模式 主从复制的作用 通过持久化功能&#xff0…

ios签名软件_苹果企业签名常常掉怎样处理【苹果签名吧】

对于使用ios苹果系统的开发者来说&#xff0c;可以在苹果app商店下载现在陈列的APP软件&#xff0c;但是没有陈列的APP软件只能使用苹果签名&#xff0c;通过上传到app签名渠道的方法下载。这种方法的缺点是&#xff0c;如果苹果ios签名无效(即签名丢失)&#xff0c;应用程序无…

算法设计与分析:(二)动态规划

目录设计思想使用动态规划的必要条件适用动态规划算法解决的问题的特征&#xff1a;优化原则&#xff1a;动态规划的一般步骤以背包问题为例动态规划本质上为带备忘录的穷举算法。对动态规划问题&#xff0c;直接套框架即可&#xff1a;问题有什么「状态」&#xff0c;有什么「…

开发app用户协议_APP软件开发如何让用户更开心地付钱?

原标题&#xff1a;APP软件开发如何让用户更开心地付钱&#xff1f;在一些付费产品中&#xff0c;明明花费了很多心思和精力制作的产品却被用户嫌弃&#xff0c;付钱的时候不情不愿。这是什么原因造成的呢&#xff1f;一、如何判断服务和虚拟商品的价值&#xff1f;比如在线的音…

漫画:什么是八皇后问题

转载自 漫画&#xff1a;什么是八皇后问题&#xff1f;题目是什么意思呢&#xff1f;国际象棋中的皇后&#xff0c;可以横向、纵向、斜向移动。如何在一个8X8的棋盘上放置8个皇后&#xff0c;使得任意两个皇后都不在同一条横线、竖线、斜线方向上&#xff1f;让我们来举个栗子&…

redis-java客户端jedis测试

【README】 本文旨在记录 jedis 包连接redis集群的开发方式&#xff0c;并对api做简单测试&#xff0c;api不会深入&#xff1b; maven引入的 jedis依赖 <dependencies><dependency><groupId>redis.clients</groupId><artifactId>jedis</a…

MySQL优化(二):索引的类型、匹配原则、创建原则

目录索引的优缺点索引类型聚簇索引&#xff08;主键索引&#xff09;非聚簇索引&#xff08;二级索引、辅助索引&#xff09;索引匹配的原则最左匹配原则无法使用索引的场景索引创建的原则使不使用索引的依据到底是什么&#xff1f;参考索引的优缺点 常见的索引结构有: B 树&a…

jedis对redis键加锁+解锁+事务提交

【README】 redis的java客户端对键加锁和解锁&#xff08;Jedis.watch() Jedis.unwatch() &#xff09;&#xff1b; 【1】代码 /*** redis加锁-watch * 【场景描述】&#xff1a; watch命令就是标记一个键&#xff0c;如果标记了一个键&#xff0c;* 在提交事务前如果该键…

win10关闭快速启动_装系统不求人,快速制作启动U盘,傻瓜式重装WIN10

在以前如果我们的电脑系统损坏&#xff0c;无法进入WINDOWS系统&#xff0c;在需要重装WINDOWS系统时&#xff0c;一般的做法是&#xff0c;下载一个WINDOWS系统镜像&#xff0c;制作一个PE启动盘&#xff0c;在PE里安装系统镜像。这样传统的WINDOWS系统重装过程麻烦且耗时。而…

漫画:什么是SnowFlake算法

转载自 漫画&#xff1a;什么是SnowFlake算法方法一&#xff1a;UUIDUUID是通用唯一识别码 (Universally Unique Identifier)&#xff0c;在其他语言中也叫GUID&#xff0c;可以生成一个长度32位的全局唯一识别码。String uuid UUID.randomUUID().toString()结果示例&#xff…

FeignClient调用服务及上传文件的注意点及问题

目录代码示例文件服务接口调用方注意点&#xff1a;2021.3.16更新&#xff1a;发新的坑坑点&#xff1a;原因分析部分异常及解决方案异常一&#xff1a;[Method has too many Body parameters](https://blog.csdn.net/haishiyizhenfeng/article/details/80607003)异常二&#x…

redis主从复制部署策略+jedis设置主从

【README】 redis 有3种集群模式&#xff0c;包括 主从&#xff0c; 哨兵&#xff0c; cluster&#xff1b; 本文主要po出 主从&#xff1b; master 192.168.163.201 6382 slave 192.168.163.202:6382 【1】从机 202:6382 的 redis.conf 配置 只需要编写 slaveof 192.…

python绘图时的分解问题的步骤-零基础学python-15.2 分解函数

这一章节我们来说说函数的一些主要概念 我们以一小段代码为例&#xff1a; >>> def test(): pass >>> 1. def是可执行的代码 >>> test() >>> 我们调用test方法&#xff0c;尽管什么都没有&#xff0c;但是test已经执行了 2.def创建了一个对…

千万条数据,Stack Overflow是如何实现快速分页的

转载自 千万条数据&#xff0c;Stack Overflow是如何实现快速分页的 Stack Overflow 在分页机制中使用页码代替偏移量&#xff0c;页码指向基于 LIMIT 和 OFFSET 的查询。假设要对 1000 万条记录进行分页&#xff0c;跳到最后一页会非常慢&#xff0c;但 Stack Overflow 还是想…

ubuntu系统下安装docker并部署Springboot+mysql+redis

目录安装DockerDocker常用命令构建mysql容器构建Redis容器构建Springboot应用镜像及容器&#xff08;1&#xff09;springboot使用maven将程序打成jar包&#xff0c;接着编写Dokerfile文件&#xff0c;[Dockerfile详细介绍](http://www.dockerinfo.net/dockerfile%e4%bb%8b%e7%…

redis连接池

【README】 本文旨在po出 redis连接池的测试用例 <dependencies><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.5.1</version></dependency></dependencies> 【1】 代…