redis集群版本決定是否需要安裝Ruby環境

2021-10-10 01:23:06 字數 3988 閱讀 4681

本文主要記錄在centos7中搭建redis集群過程中遇到的乙個環境問題。

由於redis版本高低,決定是否需要安裝ruby、rubygems環境來構建redis集群。

redis版本》=5.***,直接使用 ./redis-cli --cluster create 指令構建redis集群。

redis版本<5.***,需要安裝ruby、rubygems環境,使用 ./redis-trib.rb create 指令構建redis集群,

下面一一說明:

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

這是由於對於高版本的redis,如5.0版本,redis cluster安裝方式不推薦使用redis-trib.rb,而是使用redis-cli,這樣你就不用安裝ruby等環境,可以直接構建redis集群,參考:centos7 安裝redis集群

此時需要安裝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集群節點,恢復正常三主三從。

spring boot 條件化決定是否裝配bean

1.根據 spring.profiles.active 屬性值決定 configuration profile dev public class testconfig 註解 profile 當spring.profiles.active 值為 時裝配 2.根據condition裝配 configur...

索引的利弊與如何判定,是否需要索引

8.4.5 索引的利弊與如何判定,是否需要索引 相信讀者都知道索引能夠極大地提高資料檢索的效率,讓query 執行得更快,但是可能並不是每一位朋友都清楚索引在極大提高檢索效率的同時,也給資料庫帶來了一些負面的影響。下面就分別對 mysql 中索引的利與弊做乙個簡單的分析。索引的好處 索引帶來的益處可...

Redis集群搭建(Redis5 0版本)

簡介 最近在研究redis集群的搭建,搭建的過程中遇到了一些困難,同時也總結出一些經驗,特地來這裡總結一下並和大家分享分享。我使用的是ubuntu16.04 的linux虛擬機器進行搭建的,redis版本使用的是5.0,對於有點強迫症的我一直是喜歡最新版本的。上傳完成後首先我們要使用命令將原始碼包解...