使用redis-trib.rb搭建集群

  • 2019 年 11 月 6 日
  • 笔记

在上一篇中我们使用Gossip协议手动搭建了一个集群环境,在这一篇中我们使用redis-trib.rb工具搭建一个新集群,redis-trib.rb工具相比手动搭建,要简单的多了。因为redis-trib.rb工具是使用Ruby开发的,所以在使用该工具之前我们要先安装Ruby依赖。

1.Ruby环境搭建

  • 安装Ruby
./configure -prefix=/usr/local/ruby  make  make install  cd /usr/local/ruby  sudo cp bin/ruby /usr/local/bin  sudo cp bin/gem /usr/local/bin
  • 安装rubygem redis依赖
gem install -l rubygems-update-2.7.7.gem
  • 安装redis-trib.rb
sudo cp redis-4.0.9/src/redis-trib.rb /usr/local/bin

我们可以执行redis-trib.rb命令,查看环境是否安装成功。


2.准备节点

还是和上一篇中的启动节点一样:

./src/redis-server redis-6379.conf  ./src/redis-server redis-6380.conf  ./src/redis-server redis-6381.conf  ./src/redis-server redis-6382.conf  ./src/redis-server redis-6383.conf  ./src/redis-server redis-6384.conf

3.创建集群

这次我们不用向上一篇中的那样手动配置集群了,而是直接使用redis-trib.rb create命令。该命令可以自动完成节点握手和槽分配过程。

redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384

上面中的–replicas参数指的是集群中每个主节点配置几个从节点,因为我们一共启动了6个节点,所以我们replicas参数设置为1。

我们看上图所示,当我们执行上面命令时,命令行会显示确认命令,这是因为只有当我们输入yes,后redis-trib.rb才开始执行节点握手和槽分配操作。

看上图所示16384个槽已经全部被分配了,集群创建成功了。


4.集群完整性检查

集群完整性检查指的是必须保证所有的槽都分配到主节点上,也就是和上一篇中的那样,而从节点复制主节节点的槽。只要16384有一个槽没有分配给主节点,那么这个集群都是不完整的。我们可以使用redis-trib.rb check命令来检测创建的集群是否成功,并且check命令有一个方便之处就是只要给出集群中任意的一个节点地址该命令就可以完成整个集群的检查工作。