博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis学习之集群报错Node is not empty
阅读量:6935 次
发布时间:2019-06-27

本文共 859 字,大约阅读时间需要 2 分钟。

hot3.png

继上一篇redis3.0.x集群搭建完成之后,当然要用客户端JedisCluster简单测试一下集群啦,这样就要将redis.conf里bind 127.0.0.1改成bind +真机ip(我的192.168.161.131),下面简单地将测试中遇到的问题及解决办法记录在本篇。

遇到的问题及解决办法

在redis.conf里bind 真机ip后,接着重新执行每个redis.conf,最后再创建集群,但报错,如下图所示:

fba7919a2c06cbbb8d5a730548096907.jpg

图中报的错即:

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

这就奇怪了,于是我又去检查了一下redis.conf,ip我确实改过来了

f40152b1bd8a52b8e622e77cb02815ad.jpg

想了一会发现这三个文件appendonly.aof dump.rdb nodes.conf是之前执行ip127.0.0.1时生成的,在我改为真机ip后在执行并没有生效。

5951f1fde79d708da383a819c40fccbf.jpg

这里解释一下 dump.rdb 文件:

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

知道原因后就好办了, 解决办法:

1)将每个节点下aof、rdb、nodes.conf本地备份文件删除;

2)172.168.63.201:7001> flushdb #清空当前数据库(可省略)

3)之后再执行脚本,成功执行;

转载于:https://my.oschina.net/u/1421266/blog/847865

你可能感兴趣的文章
shell-变量的数值计算
查看>>
php-fpm的pool、php-fpm慢执行日志、open_basedir、php-fpm进程管理
查看>>
centos6.8安装 gitlab 9.3.5及使用
查看>>
字符转换指令tr,col,expand
查看>>
Egret之位图字体
查看>>
python安装MySQLdb出错解决方案
查看>>
Unable to find remote helper for 'https'解决办法
查看>>
kvm使用详解
查看>>
javascript的正则表达式
查看>>
zabbix3.2.6.1升级3.4.4图文心得
查看>>
PL/SQL子程序
查看>>
Unix/Linux shell脚本中 “set -e” 的作用
查看>>
802.1x------2
查看>>
如何实现1像素的表格
查看>>
Namenode主备切换或报 IPC Server handler 23 on 8020
查看>>
从“上云”到“云管理”,中国首个多云管理平台评估标准有何妙处
查看>>
路由协议OSPF知识点汇总
查看>>
如何定制视频业务- ramdisk 内存文件系统
查看>>
git
查看>>
SHELL简单脚本编写
查看>>