Linux下redis集群删除,linux下redis的集群搭建,节点的增加和删除

redis 3.0以上支持集群,由于集群需要ruby支持,需要先安装ruby环境并下载通信管理包

ruby处理好后,开始模拟集群的搭建

1、新建cluster文件夹,并在里面再新建10010、10020、10030、10040、10050、10060文件夹

(主10010,从10020;主10030,从10040;主10050,从10060)

2、把redis安装目录下的redis.conf文件,cp到10010文件夹

修改redis.conf配置文

A、修改bind 127.0.0.1的ip为你服务器ip

B、修改port的端口为10010

C、修改daemonize的no为yes;启动守护进程,生成pid文件

D、修改pidfile值,pid文件存放路径

E、修改loglevel值,log等级,可改为debug

F、修改logfile值,log文件存放路径

G、修改appendonly值,启动aof持久化。不过搭建主从的话,考虑禁用主redis持久化,从redis进行持久化就行了

H、启动cluster-enabled yes;启动集群

I、启动cluster-conf-file nodes-10010.conf;存放哈希槽

J、启动cluster-node-timeout 15000;节点超时时间

修改并保存文件后,再分别把该redis.conf文件,cp到10020、10030、10040、10050、10060文件夹,并做相应修改

0818b9ca8b590ca3270a3433284dd417.png

3、分别启动各节点

0818b9ca8b590ca3270a3433284dd417.png

启动后,连接redis客户端

命令:redis-cli -c -h [IP] -p [port];连接集群客户端,命令加-c。

0818b9ca8b590ca3270a3433284dd417.png

连接上,查看集群状态信息

命令:cluster info

可以看到状态是fail,哈希槽数量也是0;

4、通过redis提供的redis-trib.rb集群管理工具进行管理(redis-trib.rb使用ruby写的,所以需要安装ruby环境,并下载相关redis包)。

在redis安装目录下,进入src目录,可以看到redis-trib.rb

0818b9ca8b590ca3270a3433284dd417.png

执行命令:./redis-trib.rb  create --replicas 1 [IP]:[port] [IP]:[port] [IP]:[port] [IP]:[port] [IP]:[port] [IP]:[port]

--replicas 1,标识设置从节点数1个

[IP]:[port],前面三个是主节点,后面三个是从节点

0818b9ca8b590ca3270a3433284dd417.png

5、以上操作,通过集群管理器实现了集群的管理和主从的实现。再次连接集群客户端查看集群信息

可以看到状态ok,并且有16384个哈希槽。這16384个哈希槽被平均分配到三个主节点上

(看上图中10010节点是0-5460(5461 slots),10030节点是5461-10922(5462 slots),10040节点是10923-16383(5461 slots))

0818b9ca8b590ca3270a3433284dd417.png

6、redis通过对key使用crc16 算法算出一个结果,然后把结果对16384求余数,对应在哪个节点就数据就会存入哪个节点

0818b9ca8b590ca3270a3433284dd417.png

-----------------------------------------------------------------------------------------------------------

集群关闭,我的方法

1、kill -9 所遇redis集群相关进程

2、清理redis集群相关文件夹下的nodexxx.conf文件

3、重启redis并创建redis集群管理节点

-----------------------------------------------------------------------------------------------------------

集群节点的动态增加

1、增加节点,新建10070文件夹,并且cp配置文件redis.conf到该目录下,修改配置文件再启动

命令:./redis-trib.rb add-node [ip]:[port] [ip]:[port];redis安装目录下src目录下执行

前面一个[ip]:[port]是刚才新建需要加入的服务节点,后面一个是目标服务

0818b9ca8b590ca3270a3433284dd417.png

2、查看集群节点信息,连接集群客户端后执行命令

命令:cluster nodes;可以看到10070已经加入集群,但是还没有分配哈希槽

0818b9ca8b590ca3270a3433284dd417.png

3、分配哈希槽

命令:./redis-trib.rb reshard [ip]:[port];redis安装目录下src目录下执行

执行命令后,需要确认分哈希槽数量,确认后需再次确认目标节点的ID,确认后需再次确认是否节点均分(#1:all);所有确认完成开始节点调整

0818b9ca8b590ca3270a3433284dd417.png

4、再次查看集群节点信息,连接集群客户端后执行命令

命令:cluster nodes;可以看到10070已经加入集群,并且分配哈希槽

0818b9ca8b590ca3270a3433284dd417.png

-----------------------------------------------------------------------------------------------------------

集群节点的动态删除

1、回收哈希槽

命令:./redis-trib.rb reshard [ip]:[port];redis安装目录下src目录下执行

执行命令后,需要确认接收哈希槽的节点ID,确认后需再次确认会被回收哈希槽的节点ID,确认后(#1:done);所有确认完成开始节点调整

0818b9ca8b590ca3270a3433284dd417.png

2、查看集群节点信息,连接集群客户端后执行命令

命令:cluster nodes;可以看到10070节点的哈希槽已经被分配到10010节点

0818b9ca8b590ca3270a3433284dd417.png

3、删除节点

命令:./redis-trib.rb del-node [ip]:[port] [nodeid];需要删除节点的ip和端口,nodeid是该节点的id

0818b9ca8b590ca3270a3433284dd417.png

4、再次查看集群节点信息,连接集群客户端后执行命令

命令:cluster nodes;可以看到10070节点已经被删除了

0818b9ca8b590ca3270a3433284dd417.png

命令:cluster nodes;可以看到10070节点的哈希槽已经被分配到10010节点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值