redis集群管理

1.查看Redis集群状态:
[root@test1 6378]# redis-trib.rb check 127.0.0.1:6378
    
    
  1. [root@test1 6378]# redis-trib.rb check 127.0.0.1:6378
  2. >>> Performing Cluster Check (using node 127.0.0.1:6378)
  3. M: 0f338b0b42d33bab3dc7bb28fce83610ec90501e 127.0.0.1:6378
  4. slots:0-5460 (5461 slots) master
  5. 1 additional replica(s)
  6. S: 973ef5ab79e5aee5894d1d396d07df7fef4a181d 192.168.56.92:6379
  7. slots: (0 slots) slave
  8. replicates 0f338b0b42d33bab3dc7bb28fce83610ec90501e
  9. S: 9898fcd2957c810a66206414dc82953eb95cb967 192.168.56.93:6379
  10. slots: (0 slots) slave
  11. replicates 7069403f367e515043bfe5a2f968e9a85fc02fc4
  12. M: 7069403f367e515043bfe5a2f968e9a85fc02fc4 192.168.56.93:6378
  13. slots:10923-16383 (5461 slots) master
  14. 1 additional replica(s)
  15. S: 690199aef0a3176cd80050909a79e8a40827298d 192.168.56.91:6379
  16. slots: (0 slots) slave
  17. replicates c42ec13effd255603e7a36a86be45ec517121e2c
  18. M: c42ec13effd255603e7a36a86be45ec517121e2c 192.168.56.92:6378
  19. slots:5461-10922 (5462 slots) master
  20. 1 additional replica(s)
  21. [OK] All nodes agree about slots configuration.
  22. >>> Check for open slots...
  23. >>> Check slots coverage...
  24. [OK] All 16384 slots covered.
2.重分配节点
使用reshard参数来重新分配节点的slot.
$ ./redis-trib.rb reshard 127.0.0.1:7000
其中要回答以下几个问题
...
How many slots do you want to move (from 1 to 16384)? 1000           --我们打算移动的slot的个数
...
What is the receiving node ID? 9991306f0e50640a5684f1958fd754b38fa034c9     --我们打算由哪个节点接受这些slot
...
Please enter all the source node IDs.
Type 'all' to use all the nodes as source nodes for the hash slots.
Type 'done' once you entered all the source nodes IDs.
Source node #1:all        --我们希望从哪个节点取出这些的slot.如果是all则是其它所有的节点.如果想指定那么输入指定的ID,每输入一个回车一次,结束后输入done.
并按下回车之后, redis-trib 将打印出哈希槽的移动计划, 如果你觉得没问题的话, 就可以输入 yes 并再次按下回车

3.添加节点
将节点添加到Redis集群,首先需要启动一个空的redis实例,然后使用下面语句添加.
./redis-trib.rb add-node 127.0.0.1:7006 127.0.0.1:7000
上面的语句是添加的一个主节点.其中最后随便写一个当前集群中的一个连接即可.
如果要添加一个从节点有两种方法:
第一种:
同样使用上面的语句,先添加一个主节点.然后连接这个主节点,使用语句:
127.0.0.1:7000> cluster replicate 7069403f367e515043bfe5a2f968e9a85fc02fc4
OK
上面的语句的意思是将这个主节点转换成id为 7069403f367e515043bfe5a2f968e9a85fc02fc4 的从节点
第二种:
在添加节点的时候直接将节点添加为从节点,使用下面语句
./redis-trib.rb add-node --slave 127.0.0.1:7007 127.0.0.1:7000
./redis-trib.rb add-node --slave --master-id 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e 127.0.0.1:7006 127.0.0.1:7000
如果不指定master-id那么随机选择一个master-id,如果指定master-id则指定为其从节点.

4.删除节点
只要使用 del-node 命令即可:
./redis-trib del-node 127.0.0.1:7000 `<node-id>`
第一个参数是任意一个节点的地址,第二个节点是你想要移除的节点地址。
使用同样的方法移除主节点, 不过在移除主节点前,需要确保这个主节点是空的. 如果不是空的,需要将这个节点的数据重新分片到其他主节点上.
替代移除主节点的方法是手动执行故障恢复,被移除的主节点会作为一个从节点存在,不过这种情况下不会减少集群节点的数量,也需要重新分片数据.

5.从节点的迁移
在Redis集群中会存在改变一个从节点的主节点的情况,需要执行如下命令 :
CLUSTER REPLICATE <master-node-id>
在特定的场景下,不需要系统管理员的协助下,自动将一个从节点从当前的主节点切换到另一个主节 的自动重新配置的过程叫做复制迁移(从节点迁移),从节点的迁移能够提高整个Redis集群的可用性.


//集群(cluster)  
CLUSTER INFO 打印集群的信息  
CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息。   
  
//节点(node)  
CLUSTER MEET <ip> <port> 将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。  
CLUSTER FORGET <node_id> 从集群中移除 node_id 指定的节点。  
CLUSTER REPLICATE <node_id> 将当前节点设置为 node_id 指定的节点的从节点。  
CLUSTER SAVECONFIG 将节点的配置文件保存到硬盘里面。   
  
//槽(slot)  
CLUSTER ADDSLOTS <slot> [slot ...] 将一个或多个槽(slot)指派(assign)给当前节点。  
CLUSTER DELSLOTS <slot> [slot ...] 移除一个或多个槽对当前节点的指派。  
CLUSTER FLUSHSLOTS 移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点。  
CLUSTER SETSLOT <slot> NODE <node_id> 将槽 slot 指派给 node_id 指定的节点,如果槽已经指派给另一个节点,那么先让另一个节点删除该槽>,然后再进行指派。  
CLUSTER SETSLOT <slot> MIGRATING <node_id> 将本节点的槽 slot 迁移到 node_id 指定的节点中。 
CLUSTER SETSLOT <slot> IMPORTING <node_id> 从 node_id 指定的节点中导入槽 slot 到本节点。  
CLUSTER SETSLOT <slot> STABLE 取消对槽 slot 的导入(import)或者迁移(migrate)。   
  
//键 (key)  
CLUSTER KEYSLOT <key> 计算键 key 应该被放置在哪个槽上。  
CLUSTER COUNTKEYSINSLOT <slot> 返回槽 slot 目前包含的键值对数量。  
CLUSTER GETKEYSINSLOT <slot> <count> 返回 count 个 slot 槽中的键。  
这些命令是集群所独有的。执行上述命令要先登录















  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要搭建redis集群,需要进行以下步骤: 1. 下载redis集群源码包并解压 2. 编译redis集群源码包 3. 创建redis集群配置文件 4. 启动redis集群 5. 验证redis集群是否正常工作 下面我们逐一介绍每个步骤的具体操作: 1. 下载redis集群源码包并解压 可以在redis官网上下载redis集群的源码包,下载地址为:https://redis.io/download。下载完成后,解压到指定的目录下。 2. 编译redis集群源码包 进入redis集群源码包所在的目录,使用以下命令编译redis集群: make 3. 创建redis集群配置文件 在redis集群源码包所在的目录下,创建一个名为redis_cluster.conf的配置文件,并添加以下内容: port 7000 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes 说明: port:redis集群中的一个节点所使用的端口号。 cluster-enabled:是否启用集群模式。 cluster-config-file:集群配置文件的名称。 cluster-node-timeout:如果一个节点在指定的时间内没有响应,那么它就被认为是不可用的。 appendonly:是否启用AOF持久化。 根据实际需要,可以添加更多的配置项。 4. 启动redis集群redis集群源码包所在的目录下,启动redis集群,使用以下命令: ./src/redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 说明: ./src/redis-trib.rb:redis集群管理工具。 create:创建一个新的集群。 --replicas:指定每个主节点的从节点数量。 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005:指定redis集群中的所有节点。 5. 验证redis集群是否正常工作 使用以下命令验证redis集群是否正常工作: ./src/redis-trib.rb check 127.0.0.1:7000 说明: check:检查集群中的所有节点是否正常工作。 127.0.0.1:7000:指定一个节点进行检查。 如果所有节点都正常工作,那么redis集群就搭建成功了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值