基於Cluster的Redis集群方案

2021-07-30 07:15:15 字數 3771 閱讀 6129

說明:linux系統為centos6.4。要讓集群正常工作至少需要3個主節點,在這裡需要建立6個redis節點,其中三個為主節點,三個為從節點,對應的redis節點的ip和埠對應關係如下:

127.0.0.1:7000

127.0.0.1:7001

127.0.0.1:7002

127.0.0.1:7003

127.0.0.1:7004

127.0.0.1:7005

2:上傳伺服器,解壓,編譯

tar -zxvf redis-3.0.6.tar.gz

mv redis-3.0.6.tar.gz redis

cd ~/redis

make

# make install

3:建立集群需要的目錄

mkdir -p ~/cluster

cd ~/cluster

mkdir 7000 7001 7002 7003 7004 7005

4:修改配置檔案redis.conf

cp ~/redis/redis.conf ~/cluster

vi redis.conf

##修改配置檔案中的下面選項,必須在linux系統裡面修改

port 7000

daemonize yes

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

##修改完redis.conf配置檔案中的這些配置項之後把這個配置檔案分別拷貝到7000/7001/7002/7003/7004/7005目錄下面

cp ~/cluster/redis.conf ~/cluster/7000/

cp ~/cluster/redis.conf ~/cluster/7001/

cp ~/cluster/redis.conf ~/cluster/7002/

cp ~/cluster/redis.conf ~/cluster/7003/

cp ~/cluster/redis.conf ~/cluster/7004/

cp ~/cluster/redis.conf ~/cluster/7005/

##注意:拷貝完成之後要修改7001/7002/7003/7004/7005目錄下面redis.conf檔案中的port引數,分別改為對應的資料夾的名稱

5:將~/redis/src/redis-server複製到各個節點目錄下

cp ~/redis/src/redis-server ~/cluster/7000/

cp ~/redis/src/redis-server ~/cluster/7001/

cp ~/redis/src/redis-server ~/cluster/7002/

cp ~/redis/src/redis-server ~/cluster/7003/

cp ~/redis/src/redis-server ~/cluster/7004/

cp ~/redis/src/redis-server ~/cluster/7005/

6:分別啟動這6個redis例項

cd ~/cluster/7000

redis-server redis.conf

cd ~/cluster/7001

redis-server redis.conf

cd ~/cluster/7002

redis-server redis.conf

cd ~/cluster/7003

redis-server redis.conf

cd ~/cluster/7004

redis-server redis.conf

cd ~/cluster/7005

redis-server redis.conf

~/redis-3.0.6/src/redis-server ~/redis-3.0.6/redis.conf >/dev/null 2>&1 &

##啟動之後使用命令檢視redis的啟動情況ps -ef|grep redis

7:執行redis的建立集群命令建立集群

~/redis-3.0.6/src/redis-trib.rb create --replicas 1 192.168.137.31:6379 192.168.137.32:6379 192.168.137.33:6379 192.168.137.34:6379 192.168.137.35:6379

7.1 執行上面的命令的時候會報錯,因為是執行的ruby的指令碼,需要ruby的環境

錯誤內容:/usr/bin/env: ruby: no such file or directory

所以需要安裝ruby的環境,這裡推薦使用yum install ruby安裝

【root使用者】yum install ruby

7.2 然後再執行第6步的建立集群命令,還會報錯,提示缺少rubygems元件,使用yum安裝

錯誤內容:

./redis-trib.rb:24:in `require': no such file to load -- rubygems (loaderror)

from ./redis-trib.rb:24

【root使用者】yum install rubygems

7.3 再次執行第6步的命令,還會報錯,提示不能載入redis,是因為缺少redis和ruby的介面,使用gem 安裝

錯誤內容:

/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- redis (loaderror)

from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'

from ./redis-trib.rb:25

【root使用者】gem install redis

這裡可能無法安裝,因為無法連線gem伺服器:

[@zw_22_90 src]# gem install redis --version 3.0.0

error: could not find a valid gem 'redis' (= 3.0.0) in any repository

error: while executing gem ... (gem::remotefetcher::fetcherror)

wget

gem install -l ./redis-3.2.1.gem

7.4 再次執行第6步的命令,正常執行

輸入yes,然後配置完成。

至此redis集群即搭建成功!

8:使用redis-cli命令進入集群環境

9:一般問題

(error) clusterdown the cluster is down

~/redis-3.0.6/src/redis-trib.rb fix 127.0.0.1:6379

10:注意事項:

1)不要使用回環位址127.0.0.1,dns或者hostname避免使用

2)注意data bus埠的分配,應該小於(65535  - 10000),cluster bus 埠預設是 data bus埠 + 10000。

11:生產部署情況:

1)redis cluster,5主5從,每台6個例項,每個例項8g記憶體,一台機器共使用48g,5臺就總共 240g的redis 空間使用。

2)傳統redis,一主一從,每台1個例項,每個例項8g記憶體

redis5 0 4 cluster安裝部署

注意 首先redis中不能有資料,本人是新搭建的,先有資料再邊集群的請自己動手 需要開啟redis埠和集群的匯流排埠,即redis埠號 10000,如6379則為16379 2 修改redis.conf,修改內容如下 bind 127.0.0.1 bing是指只有指定的網段或位址才能訪問該redis...

redis5 0 Cluster集群搭建

安裝redis sudo apt update sudo apt install build essential tcl cd mkdir document cd document curl o tar zxvf redis stable.tar.gz cd redis stable make ma...

Redis一鍵開啟cluster集群

可以對比一下使用原生命令安裝的cluster集群 1 安裝redis4.0的版本 5.0的版本是c語言開發的,不支援ruby語言 2 配置redis的6個節點的檔案 配置7000埠的檔案 vim redis 7000.conf port 7000 daemonize yes dir opt redi...