NoSQL集群管理

本文详细介绍了如何创建和管理Redis集群,包括使用redis-trib脚本创建集群,查看集群信息,访问集群,进行故障切换测试,以及添加和移除master和slave服务器的操作步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建集群

工作原理

在这里插入图片描述

创建集群

  • 部署管理集群
  • 也可以部署在任意一台redis服务器上
    -部署ruby脚本运行环境
    -创建管理集群脚本
]# yum -y install rubygems
] # gem install redis-3.2.1.gem
]# rpm -q ruby || yum -y install ruby

]# mkdir /root/bin   //创建命令检索目录
]# tar -zxvf redis-4.0.8.tar.gz
]# cd  redis-4.0.8./src/
]# cp redis-trib.rb /root/bin/	//创建管理集群脚本
]# chmod +x /root/bin/redis-trib.rb
]# redis-trib.rb  help  //查看命令帮助

redis-trib脚本

-用法
]# redis-trib.rb <arguments…>

create 创建集群
check 检查集群
info	查看集群信息
reshard  重新分片
del-node  删除主机
add-node --slave  添加slave主机
add-node  添加master主机
rebalance  平均分配hash slots

创建集群

  • 配置6台redis服务器
    -启用集群功能
    -查看服务信息
]# vim /etc/redis/redis.conf
	cluster-enabled yes   //启用集群功能
	cluster-config-file nodes-6379.conf  //存储集群信息文件
	cluste-node-timeout 5000  //连接超时时间单位毫秒
]# /etc/init.d/redis_6379 restart  //重启服务
]# ss -ntulp | grep redis-server 
(集群通信端口 默认服务端口+10000)

- 创建集群
]# redis-trib.rb create --replicas 1 \(定义每台主库从库个数) 
192.168.4.51:6351  192.168.4.52:6352 \
192.168.4.53:6353  192.168.4.54:6354 \
192.168.4.55:6355  192.168.4.56:6356 \

Creating cluster

on 6 nodes...
Using 3 masters: //选举出3个主库
192.168.4.51:6351
192.168.4.52:6352
192.168.4.53:6353
......

[OK] All nodes agree about slots configuration.

Check for open slos …
Check slots coverage…

[OK]All 16384 slots covered //集群创建完成提示

查看集群信息

  • 在管理主机查看

]# redis-trib.rb info ip地址:端口 //查看集群信息
]# redis-trib.rb check 192.168.4.51:6351 //检查集群主机角色

-在每一台,redis服务本机查看

]# redis-cli -h 192.168.4.51 -p 6351
192.168.4.51:6351> cluster info //查看集群信息
192.168.4.51:6351> cluster nodes //查看集群节点信息

访问集群

  • 在客户端可以链接集群中任意一台redis服务器
  • 命令 ]# redis-cli -c -h ip 地址 -p 端口号
  • 选项 -c 集群模式
client]# redis-cli -c -h 192.168.4.56 -p 6356
192.168.4.56:6356> set school tarena //存数据
-> Redirected to slot [8455] located at 192.168.4.52:6352
client]# redis-cli -c -h 192.168.4.53 -p 6353
192.168.4.53:6353> get school //取数据
->Redirected to slot [5798] located at

管理集群

故障切换测试

  • 停止master 主机的redis服务
    -master宕机后对应的slave自动被选举为master
    -原master启动后,会自动配置为当前master的slave
  • 检测集群
    -在管理主机查看信息

]# redis-trib.rb check 192.168.4.52:6352
]# redis-trib.rb info 192.168.4.52:6352

添加master服务器

  • 部署一台新redis服务器
    -运行服务并启用集群配置

  • 添加master主机buz
    -添加master主机
    -分配Hash槽(slots)

  • 添加master 主机
    -添加时不指定主机角色,默认新数据被选为master
    -添加的master主机,需要手动分配hash槽

]#redis-trib.rb add-node 192.168.4.58:6358 192.168.4.51:6351
Adding node 192.168.4.58:6358 to cluster 192.168.4.51:6351 …

[OK] All nodes agree about slots configuration.
[OK] New node added correctly. //添加成功提示

  • 重新分片
    -移除hash槽个数
    -接收hash槽主机ID
    -移除hash槽主机ID
]#redis-trib.rb reshard 192.168.4.51:6351 //重新分片

How many slots do you want to move (from 1 to 16384)? 4096
What is the receiving node ID?
(输入要接收hash槽的主机ID)
Please enter all the source node IDs.

Source node #1:all
Do you want to proceed with the proposed reshard plan (yes/no)? yes

添加slave服务器

  • 部署一台新redis服务器
    -运行服务并启用集群配置
  • 添加slave主机
    ]#redis-trib add-node --slave [–master-id id值]
    (如果不指定主节点的id的话,会把新节点随机添加为节点最少的库)
    ip 地址:端口 192.168.4.51:6351
  • 添加slave主机
    ]# redis-trib add-node --slave 192.168.4.59:6359 192.168.4.51:6351 (前面是要添加的主机和端口,把它添加到那个集群里,后面跟集群中任意主机和端口)
    [OK] New node added correctly. //添加成功提示

移除slave服务器

  • 移除slave主机
    -从服务器没有hash槽,直接移除即可.
    -移除时指定从服务器id值
    ]# redis-trib.rb del-node 192.168.4.51:6351
    (后面跟要移除的Slave主机id值)

SHUTDOWN the node //会停止移除主机的redis 服务

移除master服务器

  • 配置步骤
    -释放占用的hash槽
    -移除主机
    ]# redis-trib.rb reshard 192.168.4.51:6351 //重新分片
    ]# redis-trib.rb del-node 192.168.4.51:6351 master主机id值
  • 释放占用的slots
    -指定移除slots 个数
    -指定接收slots 主机ID
    -指定移出 slots 主机ID

#redis-trib.rb reshard 192.168.4.51:6351 //重新分片
How many slots do you want to move (from 1 to 16384)? 4096
What is the receiving node ID?
(输入要接收hash槽的主机ID)
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 node IDs.
Source node #1:(跟要把hash 值给哪个主服务器的ID值)
Source node #2:done
Do you want to proceed with the proposed reshard plan (yes/no)? yes

  • 移出master主机
]# redis-trib del-node 192.168.4.51:6351 (要移除的ID值)

Removing node
(ID值) from cluster 192.168.4.51:6351
Sending CLUSTER FORGET messages to the cluster…
SHUTDOWN the node
fin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值