用redis-trib.rb搭建redis集群
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,用redis-trib.rb搭建集群【常用方法】redis-trib.rb 是采用Ruby实现的redis集群管理工具;内部通过Cluster相关命令进行简化集群创建、检查、槽乔伊和均衡等常见运维操作
千家信息网最后更新 2025年12月02日用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/ruby2、准备节点
-- 主节点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安全错误
数据库的锁怎样保障安全
go连接数据库方法
XP系统打开服务器管理器
网络安全法的监控部门是
在服务器上创建svn
云开发的数据库怎么删除
软件开发收益
沈阳租服务器
上海明猴网络技术有限公司
海南标准机架服务器在哪买
科技互联网融合发展战略
入侵检测网络安全
手表鉴定网络安全
苹果总是弹出下载新的服务器
创建数据库的命令格式为
绍兴工业网络技术口碑推荐
服务器维护安全培训
空间网络技术好找工作吗
信息网络安全监察专升本
网络安全启示漫画
mc服务器时间指令
苏州智能化软件开发供应商
kyqp4234服务器
可用于维护小型数据库的软件是
西安高新区软件开发公司电话
网络安全补丁专门加固措施
网络安全板块股价
想学习网络安全怎么学
海南千钧互动网络技术
河北职业软件开发哪家快
滨州关于开展全市网络安全检查