用redis-trib.rb搭建redis集群
发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,用redis-trib.rb搭建集群【常用方法】redis-trib.rb 是采用Ruby实现的redis集群管理工具;内部通过Cluster相关命令进行简化集群创建、检查、槽乔伊和均衡等常见运维操作
千家信息网最后更新 2024年11月20日用redis-trib.rb搭建redis集群
用redis-trib.rb搭建集群【常用方法】
redis-trib.rb 是采用Ruby实现的redis集群管理工具;
内部通过Cluster相关命令进行简化集群创建、检查、槽乔伊和均衡等常见运维操作;
使用之前需要安装Ruby依赖环境
1、Ruby环境准备
https://cache.ruby-lang.org/pub/ruby/2.3/【下载网址】-- 下载ruby ---cd /soft/toolswget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.4.tar.gz-- 安装ruby ---tar zxf ruby-2.3.4.tar.gzcd ruby-2.3.4./configure --prefix=/soft/ruby-2.3.4makemake installln -s /soft/ruby-2.3.4 /soft/rubycd /soft/rubycp bin/ruby /usr/local/bin/cp bin/gem /usr/local/bin/[root@lbl ruby]# ll /usr/local/bin/{ruby,gem}-rwxr-xr-x. 1 root root 548 Apr 21 00:42 /usr/local/bin/gem-rwxr-xr-x. 1 root root 22306743 Apr 21 00:42 /usr/local/bin/ruby-- 安装rubygem redis依赖 ---wget http://rubygems.org/downloads/redis-3.3.0.gemgem install -l redis-3.3.0.gemgem list --check redis gem-- 安装redis-rb管理工具 ---[root@test ruby]# cp /soft/tools/redis-3.2.0/src/redis-trib.rb /usr/local/bin/[root@test ruby]# ll /usr/local/bin/{ruby,gem,*.rb}-rwxr-xr-x. 1 root root 548 Apr 16 10:05 /usr/local/bin/gem-rwxr-xr-x. 1 root root 60578 Apr 16 10:07 /usr/local/bin/redis-trib.rb-rwxr-xr-x. 1 root root 22306727 Apr 16 10:05 /usr/local/bin/ruby
2、准备节点
-- 主节点redis-server /soft/redis/cluster/7000/redis.conf &redis-server /soft/redis/cluster/7100/redis.conf &redis-server /soft/redis/cluster/7200/redis.conf &-- 从节点redis-server /soft/redis/cluster/7001/redis.conf &redis-server /soft/redis/cluster/7101/redis.conf &redis-server /soft/redis/cluster/7201/redis.conf &
3、创建集群
启动好6个节点之后,使用redis-trib.rb create命令完成节点握手和槽分配过程:
注意:指定 主从节点时,前三个为主节点;后三个为对应从节点
[root@test cluster]# redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7100 127.0.0.1:7101 127.0.0.1:7200 127.0.0.1:7300>>> Creating cluster>>> Performing hash slots allocation on 6 nodes...Using 3 masters:127.0.0.1:7000127.0.0.1:7001127.0.0.1:7100Adding replica 127.0.0.1:7101 to 127.0.0.1:7000Adding replica 127.0.0.1:7200 to 127.0.0.1:7001Adding replica 127.0.0.1:7300 to 127.0.0.1:7100M: b70ce6df43039cd8ef2004a031851668dfe51982 127.0.0.1:7000 slots:0-5460 (5461 slots) masterM: 3300b8f899d7f369d7095025954f2069857801c0 127.0.0.1:7001 slots:5461-10922 (5462 slots) masterM: 085d2851ef195428786f7df14a2c00fedb6ccec9 127.0.0.1:7100 slots:10923-16383 (5461 slots) masterS: 97cf943c9fac35520fdd9426e344f7b7cc390fb8 127.0.0.1:7101 replicates b70ce6df43039cd8ef2004a031851668dfe51982S: e2fae64bbac1fc28d66c4cb21c5be95be4ba8953 127.0.0.1:7200 replicates 3300b8f899d7f369d7095025954f2069857801c0S: 5207520b05fd05240a56d132bf90fa4e9dde97cb 127.0.0.1:7300 replicates 085d2851ef195428786f7df14a2c00fedb6ccec9Can I set the above configuration? (type 'yes' to accept): yes>>> Nodes configuration updated>>> Assign a different config epoch to each node>>> Sending CLUSTER MEET messages to join the clusterWaiting for the cluster to join...>>> Performing Cluster Check (using node 127.0.0.1:7000)M: b70ce6df43039cd8ef2004a031851668dfe51982 127.0.0.1:7000 slots:0-5460 (5461 slots) masterM: 3300b8f899d7f369d7095025954f2069857801c0 127.0.0.1:7001 slots:5461-10922 (5462 slots) masterM: 085d2851ef195428786f7df14a2c00fedb6ccec9 127.0.0.1:7100 slots:10923-16383 (5461 slots) masterM: 97cf943c9fac35520fdd9426e344f7b7cc390fb8 127.0.0.1:7101 slots: (0 slots) master replicates b70ce6df43039cd8ef2004a031851668dfe51982M: e2fae64bbac1fc28d66c4cb21c5be95be4ba8953 127.0.0.1:7200 slots: (0 slots) master replicates 3300b8f899d7f369d7095025954f2069857801c0M: 5207520b05fd05240a56d132bf90fa4e9dde97cb 127.0.0.1:7300 slots: (0 slots) master replicates 085d2851ef195428786f7df14a2c00fedb6ccec9[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.
4、集群完整性检查
集群完整性是指所有的槽都分配到了存活的主节点上,只要16384个槽中有一个没有分配给节点则表示集群不完整;
可以使用redis-trib.rb check命令检测之前创建的两个集群是否成功,check命令只需要给出集群中任意一个节点地址就可以完成整个集群的检查工作;
-- 命令如下: --redis-trib.rb check 127.0.0.1:7000redis-trib.rb check 127.0.0.1:7100-- 输出如下信息,提示集群所有的槽都已分配到节点 --[root@test cluster]# redis-trib.rb check 127.0.0.1:7000>>> Performing Cluster Check (using node 127.0.0.1:7000)M: b70ce6df43039cd8ef2004a031851668dfe51982 127.0.0.1:7000 slots:0-5460 (5461 slots) master 1 additional replica(s)S: e2fae64bbac1fc28d66c4cb21c5be95be4ba8953 127.0.0.1:7200 slots: (0 slots) slave replicates 3300b8f899d7f369d7095025954f2069857801c0S: 97cf943c9fac35520fdd9426e344f7b7cc390fb8 127.0.0.1:7101 slots: (0 slots) slave replicates b70ce6df43039cd8ef2004a031851668dfe51982M: 085d2851ef195428786f7df14a2c00fedb6ccec9 127.0.0.1:7100 slots:10923-16383 (5461 slots) master 1 additional replica(s)S: 5207520b05fd05240a56d132bf90fa4e9dde97cb 127.0.0.1:7300 slots: (0 slots) slave replicates 085d2851ef195428786f7df14a2c00fedb6ccec9M: 3300b8f899d7f369d7095025954f2069857801c0 127.0.0.1:7001 slots:5461-10922 (5462 slots) master 1 additional replica(s)[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.
5、总结
1. 建立集群主要步骤如下: ① 准备节点 ② 节点握手【meet命令,是一个异步命令】 ③ 分配槽 【cluster addslots {number_start..number_end}】2. redis cluster 需要至少6个节点,3个主节点 +3个从节点3. 主从节点必须为复制关系【cluster replicate 主节点ID 命令,建立复制关系】4. 节点握手协议采用Gossip协议进行通信,通过meet命令建立握手关系,通过ping/pong命令保持正常通信5. 加入到集群中的节点,在没有分配槽时,无法进行任何读写操作;
相关链接:
手动构建redis集群
redis集群【报错总结】
节点
集群
命令
分配
准备
检查
三个
主从
完整性
工具
环境
管理工具
管理
通信
均衡
成功
下载网址
两个
信息
地址
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
国泰安数据库能查股市变动吗
创业版软件开发费用
广西数据网络安全工程资质
flex软件开发工程师工作
网络安全对邮政行业的影响
模式是数据库中的什么结构
数据库清空表
加强网络安全的提案
网络安全 符合性评测
嵌入式软件开发工程师真实现状
网络安全和信息技术服务
计算机考网络还是数据库好
国家网络安全维护
数据库架构设计及探索
三维可视化数字孪生软件开发
华南农业大学数据库
网络服务器维护需要学什么专业
举报互联网科技有限公司找谁
网络安全职业操守怎么写
遵义软件开发定制
互联网科技青年号
同花顺服务器太忙点不开
csiq图像质量评价数据库
工信证网络安全
软件开发金融信息化
大话西游如何查看服务器
数据库支持多业务场景
linux服务器临时断网
数据库恢复采用的方法有哪些
进口串口设备服务器生产