redis集群版本决定是否需要安装Ruby环境

10 篇文章 0 订阅

本文主要记录在centos7中搭建redis集群过程中遇到的一个环境问题。

由于redis版本高低,决定是否需要安装ruby、rubygems环境来构建redis集群。

redis版本>=5.xxx,直接使用 ./redis-cli --cluster create 指令构建redis集群。

redis版本<5.xxx,需要安装ruby、rubygems环境,使用 ./redis-trib.rb create 指令构建redis集群,

下面一一说明:

1. redis版本>=5.xxx

如果直接使用redis 5.0版本的 redis-trib.rb 配置redis集群,会出现如下警告:

这是由于对于高版本的redis,如5.0版本,redis cluster安装方式不推荐使用redis-trib.rb,而是使用redis-cli,这样你就不用安装ruby等环境,可以直接构建redis集群,参考:centos7 安装redis集群

2. redis版本<5.xxx

此时需要安装ruby、rubygems环境。这时又有个比较坑的点在于ruby的版本问题。

注:为什么需要安装ruby环境?

对于低版本的redis,在使用集群方式部署时,redis官方提供了redis集群方式的工具:redis-trib.rb,位于/usr/local/src/redis-5.0.3/src目录下,它是用ruby写的一个程序,所以需要集群方式部署redis之前,需要安装Ruby环境。

网上最多的做法是采用指令:yum install ruby rubygems -y 安装,但是此方式在centos7环境下安装上的ruby版本如下:

显示已经是最新版本,但是对于后面搭建redis集群来说还是太低,不能通过指令的方式安装

关于安装、升级ruby版本,参考: 安装、升级Ruby版本

完成安装、升级ruby版本后,还需要安装Ruby的redis接口,输入命令 " gem install redis " 进行安装。

完成后,使用redis压缩包中的redis-trib.rb文件,可以正常配置redis集群,指令如下:

./redis-trib.rb create --replicas 1 192.168.100.133:6661 192.168.100.133:6662 192.168.100.130:6663 192.168.100.130:6664 192.168.100.131:6665 192.168.100.131:6666

系统自动分配redis集群的主从节点。

>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.100.133:6661
192.168.100.130:6663
192.168.100.131:6665
Adding replica 192.168.100.130:6664 to 192.168.100.133:6661
Adding replica 192.168.100.133:6662 to 192.168.100.130:6663
Adding replica 192.168.100.131:6666 to 192.168.100.131:6665
M: 438d8b20afbf19e943c3e4438e10f5f397d58235 192.168.100.133:6661
   slots:0-5460 (5461 slots) master
S: bd1bd8fff0d61c8676515a25928bb9db9610ec1a 192.168.100.133:6662
   replicates 41215ea696c07c620148bab64c6fec85e51893ba
M: 41215ea696c07c620148bab64c6fec85e51893ba 192.168.100.130:6663
   slots:5461-10922 (5462 slots) master
S: 80f85ffd3111ce55eceb95f9380b3dae7287cce5 192.168.100.130:6664
   replicates 438d8b20afbf19e943c3e4438e10f5f397d58235
M: 33753ef34809cfb445925c06345874a170a0c13a 192.168.100.131:6665
   slots:10923-16383 (5461 slots) master
S: 180daddf71958db4adb95fdd01cf440809883e56 192.168.100.131:6666
   replicates 33753ef34809cfb445925c06345874a170a0c13a
Can 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 cluster
Waiting for the cluster to join......
>>> Performing Cluster Check (using node 192.168.100.133:6661)
M: 438d8b20afbf19e943c3e4438e10f5f397d58235 192.168.100.133:6661
   slots:0-5460 (5461 slots) master
M: bd1bd8fff0d61c8676515a25928bb9db9610ec1a 192.168.100.133:6662
   slots: (0 slots) master
   replicates 41215ea696c07c620148bab64c6fec85e51893ba
M: 41215ea696c07c620148bab64c6fec85e51893ba 192.168.100.130:6663
   slots:5461-10922 (5462 slots) master
M: 80f85ffd3111ce55eceb95f9380b3dae7287cce5 192.168.100.130:6664
   slots: (0 slots) master
   replicates 438d8b20afbf19e943c3e4438e10f5f397d58235
M: 33753ef34809cfb445925c06345874a170a0c13a 192.168.100.131:6665
   slots:10923-16383 (5461 slots) master
M: 180daddf71958db4adb95fdd01cf440809883e56 192.168.100.131:6666
   slots: (0 slots) master
   replicates 33753ef34809cfb445925c06345874a170a0c13a
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

注:初次使用redis5版本搭建集群,配置ruby环境与使用 ./redis-trib.rb create 指令搭建,但是此处第一次构建redis集群时,所有分配的节点都是master节点,如上所示,怀疑与版本兼容性有关,后使用 ./redis-cli --cluster 指令又重新分配redis集群节点,恢复正常三主三从。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值