Redis集群之修改节点IP

因为一些原因,以前IP没法用了,所有节点都down掉了,所以项目忽然报错:

服务器现在修改Redis节点的IP地址

注意,虽然是修改,但实质上是重建集群,所以需要你删除之前每个节点的一些文件,才能用新的IP重建集群:

在删除之前,要先暂停所有节点:

查看Redis进程:

ps -ef|grep redis

然后杀死进程:

kill -9 xxx

好了,可以开始删除相关文件了:

需要删除的文件 : Redis每个节点相应的 持久化文件和节点信息文件:

进入每一个节点,有dump.rdb持久化文件和nodes.conf节点信息文件,删除。

你要是忘了自己文件在哪里了,可以用下面指令查看一下目录:

find / -name 文件名

我这里都放在一起了:

在对应文件目录下删除相关文件:

rm -f nodes-*.conf
rm -f dump-*.rdb

删除后只留下如下文件:

PS:(如果你的Redis.conf文件里开启并生成了appendonly.aof,你也必须删除它,因为不删除aof文件会和不删除rdb文件一样导致在接下来重新创建节点过程中出现原节点存在数据(Not Empty)异常)

接着:

在重建集群之前需要你依次将每个节点重新启动起来,否则会直接报错 [ERR] Sorry, can‘t connect to node

重新创建集群(用新的ip)执行redis-trib.rb脚本:

(*注意:"192.168.127.130"是本地局域网IP,如果是生产环境下或者非本地测试,请直接使用服务器外网IP地址

./redis-trib.rb create --replicas 1 192.168.127.130:8000 192.168.127.130:8001 192.168.127.130:8002 192.168.127.130:8003 192.168.127.130:8004 192.168.127.130:8005 

我执行到这里就已经成功了,但是由于IP原因,我这里引用别人一的张图(别人图片还有说明,比我认真多了):

输入yes,创建成功.

后记:

    1、通过以上步骤,重新配置Redis集群IP就成功了。

  2、总结可能出现的步骤问题,导致客户端不能正常访问Redis:

  1、redis.conf限制了IP地址访问

   2、没有开启Redis集群总线端口==>"Redis端口+10000"

    3、使用rudy命令开启集群,在非本地环境下,没有使用外网IP

    ruby redis-trib.rb create --replicas 1 外网IP:7000 外网IP:7001 外网IP:7002 外网IP:7003 外网IP:7004 外网IP:7005

 

原文地址:https://www.cnblogs.com/xk920/p/12119376.html

时间: 2024-08-02 04:51:54

Redis集群之修改节点IP的相关文章

Redis 集群环境添加节点失败问题

最近在给公司网管系统Redis集群环境添加节点时候遇到一个问题,提示新增的Node不为空: [[email protected] src]# ./redis-trib.rb add-node --slave --master-id4f6424e47a2275d2b7696bfbf8588e8c4c3a5b95 172.168.63.202:7001172.168.63.202:7000 ...... [OK] All nodes agree about slotsconfiguration. >

修改cdh5集群中主机节点IP或hostName

前言 在使用cdh集群过程中,难免会因为某些不可抗拒的原因导致节点IP或hostName变动,而cm的监控界面无法完成这些事情,但是cm将集群中所有的主机的信息都存在postgresql数据库的hosts表中, 现在让我们来通过修改hosts来完成这个操作. 第一步,关闭服务 1. 关闭集群服务,及 Cloudera Management Service,2. 关闭cm服务:( cm安装节点  ) 命令 : service cloudera-scm-server stop service clo

CDH 集群环境Master节点IP变更

因为集群中的节点服务器都是通过DHCP自动分配IP,原则上重启了IP也不会变更,因为在启动的时候已经为Mac地址固定分配了一个IP地址,除非Mac地址变更.巧合的是,昨天早上扫地大妈把某Master的节点服务器因为擦桌子而把网线给扯掉了,等我发现该节点连接不上的时候,重新插上网线之后结果Ip变了.想了很多中的方式,将所有节点的Ip设置为手动配置,但是手动配置IP,该节点就无法与其他节点通信,网络连接失败,更不能连接Internet.百思不得其解.  无奈只能再此将Master节点按照自动分配的I

redis集群配置和节点管理

生产环境中的redis绝大多数是以集群形态运行的,这篇博文简要介绍分布式集群的原理.优势,然后描述配置过程. redis集群的原理 redis集群的原理简要介绍如下 redis中有槽位的概念,可以这样理解,redis的数据存储在16384个槽位中,分布式集群就是将这些槽位均匀分布到多个分片节点(不同的redis实例)中. 写入数据时:将key做crc16(key),然后和16384进行取模,得出槽位值(0-16383之间),找到相对应的分片节点的主节点,存储到相应槽位上. 读取数据时:只需要连接

redis集群添加新节点

一.创建节点(接上文) 1.在H1服务器/root/soft目录下创建7002目录 2.将7001目录的配置文件redis.conf拷贝到7002,并修改配置文件的端口 3.进入 redis-5.0.5 目录下,执行启动命令 ./src/redis-server ../7002/redis.conf 4.进入H2创建7002的salve,步骤与前三个步骤一样 二.添加节点 1.第一个ip:port 为需要添加的节点ip和端口,第二个ip:port为当前集群中的节点和端口:先后执行以下命令: ./

如何确定Redis集群中各个节点的主从关系

1.首先通过命令(以192.168.203.141为例,-c代表集群的意思) ./redis-cli -h 192.168.203.141 -p 8001 -c 2.然后在输入  cluster nodes 命令,然后就会显示出各个节点的主从信息了 原文地址:https://www.cnblogs.com/fengzifengfeng/p/10421431.html

redis集群删除master节点

1.首先把该master节点下的哈希槽转移到其他节点下 执行下面命令: redis-trib.rb reshard 192.168.139.30:7000 (接受哈希槽的redis节点,不是待删除的redis节点) 随后会提示接受哈希槽的node ID: 即192.168.139.30:7000的node ID 转移哈希槽的node ID,然后再输入done 表示输入完毕 2.然后删除节点就可以了. redis-trib.rb del-node 192.168.139.30:7003 0a2e3

Redis集群节点主从关系调整

一.概述 Redis集群创建后,可能会出现互为主从关系的节点从属于同一台服务器的情况.在此种情况下,若 服务器故障宕机或需要停机维护,互为主从关系的节点同时停止运行,导致redis集群暂时失去一部 分slot插槽.此时,redis集群为fail状态,对其进行的数据读写操作均无法正常进行.为避免此种情 况的发生,应对redis集群节点的主从关系进行调整,使互为主从关系的节点分属于不同的服务器. 二.调整方法描述 1.使用redis-trib.rb脚本将待调整的从节点从redis集群中删除.(执行此

Redis集群中,是选择奇数节点还是偶数节点?(理论)

我们来通过一组组示例进行分析: 3节点环境:1个master.2个slave 存储空间:最大等于1个节点的容量.(如果是2个master的话,那么数据会丢失一部分) 冗余性:允许1个节点故障. 4节点环境:2个master.2个slave 存储空间:2个节点的容量. 冗余性:允许1个节点故障.(集群中,半数以上节点认为故障,才会选举.) 5节点环境:2个master.3个slave 存储空间:2个节点的容量. 冗余性:允许2个节点故障. 6节点环境:3个master.3个slave 存储空间:3