簡言
1. redis5.0版本以下集羣的部署是使用ruby腳本完成的,ruby腳本的安裝少略麻煩(主要原因是系統自動安裝的版本太低,無法部署集羣,必須手動安裝)
2. redis5.0版本以後把集羣的部署集成到了create_cluster中(位置:redis根目錄/utils/create-cluster/create-cluster),更簡單,幾條簡單的命令即可部署一個簡單版的集羣,具體示例見筆者的這篇博客,todo
3. 如果您在參考本片博客進行操作時遇到了其他未知問題,請參考筆者的這篇博客,centos版本的redis5.0以下集羣搭建
https://blog.csdn.net/yzf279533105/article/details/103696990
版本
redis版本是redis4.0.14,下載地址見:https://download.csdn.net/download/yzf279533105/12050914
ruby版本是ruby-2.6.5,下載地址見:https://download.csdn.net/download/yzf279533105/12043129
rubygem對redis的管理包,下載地址見:https://download.csdn.net/download/yzf279533105/12051029
系統:ubuntu 16.04 64位
架構
開啓6個獨立的redis服務器,然後使用ruby腳本把它們連接起來,ruby會自動幫我們分配好6個節點的主從關係
具體步驟
1. 在目錄 /usr/local下新建一個文件夾 redis-cluster-4.0.14,該目錄用來存放我們所有的redis節點示例
2. 在新建的目錄redis-cluster-4.0.14 中創建一個文件夾 redis01,這個目錄用來存放redis示例節點1的文件
3. 在新建的目錄 redis01 中放入以下文件,如下圖,注意這些文件原來的位置,這是筆者安裝redis4.0.14的目錄,都是redis4.0.14編譯出來的
redis-benchmark 原位置: /usr/local/redis/redis-4.0.14/src/
redis-check-aof 原位置: /usr/local/redis/redis-4.0.14/src/
redis-check-rdb 原位置: /usr/local/redis/redis-4.0.14/src/
redis-cli 原位置: /usr/local/redis/redis-4.0.14/src/
redis.conf 原位置: /usr/local/redis/redis-4.0.14/
redis-server 原位置: /usr/local/redis/redis-4.0.14/src
redis-sentinel 我們自建的軟連接,即命令 ln -s redis-server redis-sentinel
4. 修改文件 redis01/redis.conf,修改redis.conf完畢後,記得保存。具體修改如下:
4.1 綁定的IP地址,改爲本機的局域網IP,bind屬性,比如筆者的測試機器IP是 192.168.130.113,如下圖
4.2 綁定的端口號,port屬性, 默認是6379,改爲8001,如下圖
4.3 打開集羣模式,即cluster-enabled 屬性設置爲yes,如下圖
5. 把文件夾redis01目錄,複製在同目錄下,即redis-cluster-4.0.14目錄下,分別命名redis02, redis03, redis04, redis05, redis06,這便是我們的6個redis節點,如下圖
6. 重複步驟4的修改,把裏面的redis.conf文件裏面的綁定端口依次改爲8002,8003,8004,8005,8006
7. 啓動這6個redis節點,一個一個啓動太麻煩了,我們做個批處理,start_all.sh,文件內容如下
cd redis01
./redis-server redis.conf &
cd ..
cd redis02
./redis-server redis.conf &
cd ..
cd redis03
./redis-server redis.conf &
cd ..
cd redis04
./redis-server redis.conf &
cd ..
cd redis05
./redis-server redis.conf &
cd ..
cd redis06
./redis-server redis.conf &
cd ..
8. 啓動腳本bash start_all.sh,我們運行命令 ps axu | grep redis 查看下redis進程,如下圖所示
9. 至此我們開啓來了6個redis節點
10. 搭建集羣需要ruby腳本,所以我們需要安裝ruby,很簡單。我們先運行命令 apt-get install ruby
gem 安裝gem,安裝成功後,運行命令 ruby -v,查看ruby的版本
11. 注意如果ruby版本過舊是無法部署redis集羣的,比如ruby2.0.0還是2015年的版本,就沒辦法部署redis集羣,如果您遇到了這樣的版本,請按照筆者的這篇博客 :https://blog.csdn.net/yzf279533105/article/details/103668279 安裝ruby,建議和筆者的ruby版本一致,這樣不會出什麼問題
12. 把redis-4.0.14/src/redis-trib.rb文件拷貝到我們的redis集羣目錄,即 /usr/local/redis-cluster-4.0.14目錄下,現在目錄結構如下圖
13. 從上面的地址 https://download.csdn.net/download/yzf279533105/12051029 下載gem對redis的支持包,下載到本目錄
14. 安裝這個gem包,運行命令 gem install redis-4.1.3.gem,(筆者第一次執行時出現了一個警告,所以又執行了一次,哈哈)
15. 至此,所有的準備工作已經完成
16. 創建集羣,運行命令 ./redis-trib.rb create --replicas 1 192.168.130.113:8001 192.168.130.113:8002 192.168.130.113:8003 192.168.130.113:8004 192.168.130.113:8005 192.168.130.113:8006 中途有個詢問,問你是不是滿意這種自動分配;如果你不滿意,輸入no,它會退出,什麼都不做
注意:若使用的redis是5.0版本以上,則會報錯,類似下面
WARNING: redis-trib.rb is not longer available!You should use redis-cli instead
意思是redis-trib.rb很快就不能再使用了,應該使用redis-clis來代替,所以筆者這裏給出了redis, ruby, gem包的詳細版本:
17 . 搭建成功,如下圖所示(紅框處有標出三個主redis和槽的分配,可以看到8001,8002,8003爲主,8004,8005,8006是從)