写在前面
继上一篇redis3.0.x集群搭建完成之后,当然要用客户端JedisCluster简单测试一下集群啦,这样就要将redis.conf里bind 127.0.0.1改成bind +真机ip(我的192.168.161.131),下面简单地将测试中遇到的问题及解决办法记录在本篇。
遇到的问题及解决办法
在redis.conf里bind 真机ip后,接着重新执行每个redis.conf,最后再创建集群,但报错,如下图所示:
图中报的错即:
[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我确实改过来了
想了一会发现这三个文件appendonly.aof dump.rdb nodes.conf是之前执行ip127.0.0.1时生成的,在我改为真机ip后在执行并没有生效。
这里解释一下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)之后再执行脚本,成功执行;
问题解决了之后就可以成功从java客户端测试了:
ps:这里大家不要这样测试,可以将其写在配置文件里,我这里是为了方便。
写在最后
其实平时在测试中遇到的很多问题,都可以在网上找到答案,这里只是简单的记录其中的一个。关于关于redis集群的介绍,了解请看 redis中文介绍
http://blog.csdn.net/wudalang_gd/article/details/52153571
相关推荐
如果遇到错误,如“Node is not empty”,可能是因为节点上有遗留数据。解决方法包括删除节点的AOF和RDB文件,以及集群配置文件。如果仍然存在问题,可以使用`redis-cli`清除数据库。 创建集群后,你将能够进行各种...
在Windows上搭建Redis集群可以帮助开发者在本地环境模拟实际生产环境,便于测试和学习。以下将详细讲解如何在Windows上建立Redis集群。 首先,我们需要了解Redis集群的基本概念。Redis集群采用分布式哈希表(DHT)...
如果出现“node not empty”错误,可能是因为节点仍有数据或配置信息,需要删除`node.conf`和持久化文件后再尝试创建。 10. **Redis访问限制**: - 若要允许特定IP访问Redis,可以在配置文件中使用`bind`指令列出...
使用zookeeper管理redis集群并写入master并从slave读取 所以,我们应该有一个 ping 服务器,像这样安装: 1.npm install -g node-redis-failover 2.cd 到 bin 和 ./redis-failover -c ../examples/config.json 在...
【Dapr学习(2)之Rancher2.63(k8s&k3s)环境安装Dapr】 在本文中,我们将深入探讨如何在Kubernetes(k8s)和k3s环境中,利用Rancher2.6.3管理工具安装Dapr。Dapr(Distributed Application Runtime)是一个...