redis 搭建集羣

由於當前環境因素,只有在單個服務器上牛刀小試了,上一章講到redis的安裝這裏就不重新下載redis了。直接cp 過來用,

直接上乾貨!!!

一、集羣搭建需要的環境
1.1 Redis集羣至少需要3個節點,因爲投票容錯機制要求超過半數節點認爲某個節點掛了該節點纔是掛了,所以2個節點無法構成集羣。
2.2 要保證集羣的高可用,需要每個節點都有從節點,也就是備份節點(Redis集羣中至少應該有三個節點。要保證集羣的高可用,需要每個節點有一個備份機。 redis主從複製 如果使用ruby搭建redis集羣,從節點不用手動配置,ruby會自動分配),所以Redis集羣至少需要6臺服務器。因爲我沒有那麼多服務器,在這裏搭建的是僞分佈式集羣,即一臺服務器虛擬運行6個redis實例,修改端口號爲(7001-7006),當然實際生產環境的Redis集羣搭建和這裏是大同小異的

創建存放節點的位置文件redis-cluster

[root@192 /] mkdir usr/local/redis-cluster

再分別創建6個節點子文件

[root@192 redis-cluster]# mkdir redis1
[root@192 redis-cluster]# mkdir redis2
[root@192 redis-cluster]# mkdir redis3
[root@192 redis-cluster]# mkdir redis4
[root@192 redis-cluster]# mkdir redis5
[root@192 redis-cluster]# mkdir redis6

將上一章安裝瞭解壓的的redis文件,cp 到這6個節點當中(這裏注意了cp過來後需要將文件裏面生成的dump.rdb 刪除掉不然會報錯)

 cp -r usr/local/redis/redis-4.0.12 redis-cluster/redis*
 cp -r usr/local/redis/redis-4.0.12/src/redis-trib.rb redis-cluster

依次重新編譯1,2,3,4,5,6

[root@192 redis1]# cd redis-4.0.12/
[root@192 redis-4.0.12]# make PREFIX=/usr/local/redis-cluster/redis1 install

搭建集羣的redis.conf 配置文件的參數有一點小變動,(同上一章在redis節點文件下創建etc目錄來存放redis.conf文件,這樣做的目的就是不會直接修改原文件)

cd redis1
mkdir etc
cp redis-4.0.12/redis.conf  /usr/local/redis-cluster/redis6/etc/

修改配置文件:

bin 127.0.0.1  // 將這行註釋掉或者改爲bin 0.0.0.0 不限ip訪問
port 7001 // 依次修改
protected-mode yes //將protected-mode 改爲no  關閉保護模式
cluster-enabled yes // 取消註釋

到這裏這幾個節點就安排好了,可以啓動了看看,是否存在問題
在redis-cluster文件下創建一個啓動腳本start-all.sh

cd redis1
./bin/redis-server  etc/redis.conf
cd ..
cd redis2
./bin/redis-server  etc/redis.conf
cd ..
cd redis3
./bin/redis-server  etc/redis.conf
cd ..
cd redis4
./bin/redis-server  etc/redis.conf
cd ..
cd redis5
./bin/redis-server  etc/redis.conf
cd ..
cd redis6
./bin/redis-server  etc/redis.conf

修改start-all.sh腳本權限:

chmod +x  start-all.sh

有start就來個stop (記得修改權限)

./redis1/bin/redis-cli -p 7001 shutdown
./redis2/bin/redis-cli -p 7002 shutdown
./redis3/bin/redis-cli -p 7003 shutdown
./redis4/bin/redis-cli -p 7004 shutdown
./redis5/bin/redis-cli -p 7005 shutdown
./redis6/bin/redis-cli -p 7006 shutdown

運行下看效果:
運行
沒問題,至此6個redis節點啓動成功,接下來正式開啓搭建集羣,以上都是準備條件。以上步驟也就一句話的事情:創建6個redis實例(6個節點)並啓動。
安裝ruby的原因
要搭建集羣的話,需要使用一個工具(腳本文件),這個工具在redis解壓文件的源代碼裏。因爲這個工具是一個ruby腳本文件,所以這個工具的運行需要ruby的運行環境,就相當於java語言的運行需要在jvm上。所以需要安裝ruby,指令如下:
1,先刪除掉centos 自帶的老版本的ruby

yum remove ruby

2、下載ruby穩定版

cd /usr/local/src
wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.gz

3、安裝ruby

tar zxf ruby-2.5.1.tar.gz
cd ruby-2.5.1
./configure --prefix=/usr/local/ruby
make

結果圖

make install  // 編譯下下載文件

編譯結果
查看安裝後的版本

/usr/local/ruby/bin/ruby -v

結果如圖:
在這裏插入圖片描述
設置環境變量

vim /etc/profile

最後添加

export PATH=$PATH:/usr/local/ruby/bin:

保存退出,執行

source /etc/profile

驗證下

echo $PATH

如圖:
查看環境變量
鏡像加速
此時使用gem install redis不會報錯了,但是你會發現炒雞慢,爲了更快速的安裝,這裏使用國內的鏡像(https://gems.ruby-china.org/)
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
gem sources -l
文件
然後就可以下載redis.gem了

gem install redis

下載成功
現在就可以切換到redis-cluster目錄下啓動集羣了

./redis-trib.rb create --replicas 1 192.168.0.104:7001 192.168.0.104:7002 192.168.0.104:7003 192.168.0.104:7004 192.168.0.104:7005 192.168.0.104:7006

啓動成功
測試:

[root@192 redis-cluster]# redis -c -h 127.0.0.1 -p 7001
127.0.0.1:7001> set name tom
-> Redirected to slot [5798] located at 192.168.0.104:7002
OK
 192.168.0.104:7002> get name
"tom"

到此redis 僞分佈式集羣搭建成功

總結:在分佈式集羣搭建中
1,創建並運行需要搭建的實例
2,下載ruby環境 (redis集羣管理工具redis-trib.rb依賴ruby環境)
3.運行

在搭建的時候如遇到問題或error,歡迎討論!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章