本文主要記錄在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環境?網上最多的做法是採用指令:yum install ruby rubygems -y 安裝,但是此方式在centos7環境下安裝上的ruby版本如下:對於低版本的redis,在使用集群方式部署時,redis官方提供了redis集群方式的工具:redis-trib.rb,位於/usr/local/src/redis-5.0.3/src目錄下,它是用ruby寫的乙個程式,所以需要集群方式部署redis之前,需要安裝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,對於有點強迫症的我一直是喜歡最新版本的。上傳完成後首先我們要使用命令將原始碼包解...