0
点赞
收藏
分享

微信扫一扫

8.6 Redis集群之节点管理


1.添加主节点

(1).创建新节点

在121.4.191.137机器上新建6377节点,并以集群模式启动。

8.6 Redis集群之节点管理_redis

(2).查看原集群节点信息

6377并没有加入原集群。

8.6 Redis集群之节点管理_redis_02

(3).将6377加入原集群

#existing_last_host以槽判定
redis-cli -a password --cluster add-node new_host:new_port existing_last_host:existing_last_port --cluster-master-id node_id

redis-cli -a admin123 --cluster add-node 121.4.191.137:6377 121.4.191.137:6375 --cluster-master-id e99c4338f171bd3ee45d7597aa4336ff2a5dc41f

8.6 Redis集群之节点管理_3d_03

cd /usr/local/redis/src
redis-cli -c -a admin123 -h 121.4.211.73 -p 6376
121.4.211.73:6376> cluster nodes

8.6 Redis集群之节点管理_3d_04

(4).为集群重新分配哈希槽

#host:port为任意集群节点均可,只是起到连接集群的作用
redis-cli -a password --cluster reshard host:port --cluster-from node_id --cluster-to node_id --cluster-slots <args>

从6371节点取1000个槽给新节点6377。

redis-cli  -a admin123 --cluster reshard 121.4.191.137:6375 --cluster-from bac73b1e1a8315a3591991eebfcb728d09ab2ebe --cluster-to 44bd3b967ab0fff3fcd5e89beaa3d5b0d46f9f04 --cluster-slots 1000

8.6 Redis集群之节点管理_redis_05

2.添加从节点

(1).创建新节点

在121.4.191.124机器上新建6378节点,并以集群模式启动。

8.6 Redis集群之节点管理_redis_06

(2).将6378设置为6377的从节点

redis-cli  -a password --cluster add-node new_host:new_port existing_master_host:existing_master_port --cluster-slave --cluster-master-id node_id

redis-cli -a admin123 --cluster add-node 121.4.191.124:6378 121.4.191.137:6377 --cluster-slave --cluster-master-id 44bd3b967ab0fff3fcd5e89beaa3d5b0d46f9f04

8.6 Redis集群之节点管理_d3_07

cd /usr/local/redis/src
redis-cli -c -a admin123 -h 121.4.211.73 -p 6371
121.4.211.73:6371> cluster nodes

8.6 Redis集群之节点管理_d3_08


此时,6378是6377的从节点。

3.删除从节点
(1).删除6378从节点

redis-cli  -a password --cluster del-node host:port node_id

redis-cli -a admin123 --cluster del-node 121.4.191.124:6378 c63385544eb0437bab02345a1b30649da28cdef9

8.6 Redis集群之节点管理_缓存_09

(2).杀死6378节点进程

ps -ef | grep redis
kill -9 1678

8.6 Redis集群之节点管理_缓存_10

4.删除主节点
(1).将6377主节点上的哈希槽再放回6371

redis-cli  -a admin123 --cluster reshard 121.4.191.137:6375 --cluster-from 44bd3b967ab0fff3fcd5e89beaa3d5b0d46f9f04 --cluster-to bac73b1e1a8315a3591991eebfcb728d09ab2ebe --cluster-slots 1000

cd /usr/local/redis/src
redis-cli -c -a admin123 -h 121.4.211.73 -p 6371
121.4.211.73:6371> cluster nodes

8.6 Redis集群之节点管理_数据库_11

(2).删除6377主节点

redis-cli -a admin123 --cluster del-node 121.4.191.137:6377 44bd3b967ab0fff3fcd5e89beaa3d5b0d46f9f04

8.6 Redis集群之节点管理_3d_12

(3).杀死6377节点进程

ps -ef | grep redis
kill -9 1678

8.6 Redis集群之节点管理_redis_13

5.MOVED转向
(1).非集群模式登录客户端
如果查询的key不在此节点上,会报MOVED错误。

redis-cli -a admin123 -h  121.4.211.73  -p 6371

8.6 Redis集群之节点管理_redis_14

(2).集群模式登录客户端

redis-cli -c -a admin123 -h  121.4.211.73  -p 6371

8.6 Redis集群之节点管理_redis_15

6.ASK转向
当客户端向源节点发送一个命令,并且命令要处理的键恰好就属于正在转移的槽内,就会报ASK错误,解决方案为使用集群模式连接客户端。


举报

相关推荐

0 条评论