成功搭建僞redis集羣(一)和遇到的坑

序言:

由於寫了一個redis服務,主要作用就是從redis中獲取序列號,返回給調用者,在win10中redis的安裝很好安裝,但是在linux中安裝確實很麻煩。
第一次在linux安裝redis 和redis集羣,從開始安裝,遇到的各種問題,到最後安裝成功差不多用了8個小時,有點耗時,好在最後搭建成功了。
我會很詳細的一步一步的講解我是怎麼搭建的,博文有點長,耐心看完,你會有收穫的哦~

我搭建過程中主要參考瞭如下博客:
單個redis安裝
不同主機搭建3主3從的redis集羣
同一主機搭建3主6從的redis集羣
ruby的安裝方案我都沒有采用,用的這篇:原文鏈接

由於我的網不好,選擇在win10下載好之後傳到測試環境解壓後安裝!!!

下面來講一下我的安裝過程:

首先是先安裝redis,redis安裝成功後纔是配置集羣

注意:請務必先看完本文,再做安裝和配置

一、redis的安裝

1、下載redis安裝包

官網下載地址:https://redis.io/download

我最開始是在官網下載,下載的最新版本:5.0.8
在這裏插入圖片描述
後面又偶然發現歷史版本的下載,可以各取所好~~~
歷史版本下載地址:http://download.redis.io/releases/

2、解壓

win10下載之後傳到在linux的測試環境新建的用戶中,在home目錄也就是通過cd ~進入的目錄新建一個redis目錄解壓(我在測試環境新建的主機:rdsclsr)

mkdir redis

解壓 命令:

tar -zxvf 	redis-5.0.8.tar.gz

解壓之後的目錄:
在這裏插入圖片描述
(注:我紅色陰影擋住的是我們測試環境的主機名,這個不用在意)

3、編譯

進入到解壓的目錄:

cd redis-5.0.8 

通過 make 命令來對redis解壓後文件進行編譯

make

(因爲redis是由c++編寫,所以需要make命令)

編譯好的目錄:
在這裏插入圖片描述
注:我截圖中的installs目錄是沒有的,是我下面需要安裝時需要新建的目錄,redis.conf.bak.fanhf.202004091733是我備份的原始的redis.conf文件,因爲這個文件後面需要改,所以先備份一下。

別的地方找了編譯後的文件的圖片:

4、安裝

編譯成功後,就可以進行Redis安裝了;
但是看的幾乎所有博客都是寫的在root用戶下的:/usr/local 進行安裝
但由於我是新建的用戶,怕影響了別的用戶的系統運行,所以不用root權限,就在解壓後的目錄新建一個文件夾:installs

mkdir installs

在這裏插入圖片描述

在解壓目錄:/home/rdsclsr/redis/redis-5.0.8 先執行測試安裝命令:

make test

如果出現:
在這裏插入圖片描述
就說明安裝條件是OK的,可以開始正式安裝了

安裝命令是:

make PREFIX=/home/rdsclsr/redis/redis-5.0.8/installs  install

(注:PREFIX後面是指定的安裝目錄,可以根據自己的解壓目錄來變化)

安裝命令執行後:
在這裏插入圖片描述
進入到src目錄下,查看裏面的內容

cd src
ls

在這裏插入圖片描述
進入到bin目錄:

cd ../installs/bin

在這裏插入圖片描述
可以看到這些都是一些腳本。

5、啓動redis

在這裏插入圖片描述
然後查看進程:

ps aux ||grep redis

或者使用:

ps -ef |grep redis

這兩個命令的區別參考:原文鏈接
我一般用 ps -ef |grep redis
在這裏插入圖片描述
這個圖片是我找的,因爲我現在的測試環境搭建的是redis集羣,ps的結果和這個肯定是不一樣,所以這個圖片的重點是進程信息,忽略用戶名和主機名哦~

說明:redis安裝成功後,再進行集羣的配置,本文裏給出的安裝redis的博客鏈接說要在bin的同級目錄下創建etc,移動redis.conf到etc下,由於我們是搭建redis集羣,所以我沒有挪動,就直接放在解壓目錄下了。

至此,redis的安裝就完成了,下面來講redis集羣的配置!!!

二、redis集羣的配置

由於測試環境只有一臺機器可以用,所以我就選擇在一臺機器上搭建3主6從的集羣架構,也就是1主配置2從,一共3主,6從。到了生產環境的話就需要在3臺主機,建立3主6從的集羣架構了,等搭建後我再更新不同主機搭建redis集羣的博客,嘿嘿!!!

1、創建集羣目錄

在redis目錄創建一個文件夾:

 cd  /home/rdsclsr/redis
 mkdir 	rediscluster

創建之後如下圖:
在這裏插入圖片描述
當然也可以給集羣目錄起別的名字。
進入rediscluster後創建集羣的目錄,命令如下

cd rediscluster
mkdir 7000 7001 7002 7003 7004 7005 7006 7007 7008
ls

在這裏插入圖片描述

2、修改redis.conf文件

最初的redis.conf文件在: /home/rdsclsr/redis/redis-5.0.8

cd /home/rdsclsr/redis/redis-5.0.8

備份原始的配置文件:cp redis.conf redis.conf.bak.fanhf.202004091733

cp  redis.conf   redis.conf.bak.fanhf.202004091733

說明:redis.conf.bak.fanhf.202004091733是我備份的文件名,bak表示備份的標識,fanhf是我的公司暱稱,後面是備份的時間具體到年月日時分,便於以後查看。

下面開始修改配置文件

先來說一下都需要修改哪些地方,爲了便於觀看,我先把配置文件傳到win10上,再用notepad++來修改,修改之後傳到linux系統上,從win10到linux傳文件我用的時FileZila,可自行百度下載哦~

①註銷綁定的端口號
在這裏插入圖片描述
(注:這裏不用修改,默認是註銷的)

②關閉保護模式
在這裏插入圖片描述
修改:將yes改爲:no

③修改端口號
在這裏插入圖片描述
修改:將端口號6379改成:7000

④後臺運行開啓
在這裏插入圖片描述
修改:將no改爲:yes

⑤指定pid文件存放的位置
在這裏插入圖片描述
修改:將/var/run/redis_6379.pid改爲:/home/rdsclsr/redis/rediscluster/7000/redis_7000.pid

⑥修改日誌存放路徑即logfile的路徑
在這裏插入圖片描述
修改:將"“改爲:”/home/rdsclsr/redis/rediscluster/7000/redis.log"

⑦修改dump日誌文件路徑
在這裏插入圖片描述
修改:將dump.rdb改爲:dump.7000.rdb

⑧啓用二進制日誌
在這裏插入圖片描述
修改:將no改爲:yes

⑨啓用集羣
在這裏插入圖片描述
修改:去掉前面的#,即取消註釋

⑩修改集羣配置文件,將端口號進行修改,開啓打開集羣超時時間
在這裏插入圖片描述
修改1:去掉前面的#,將 nodes-6379.conf改爲: nodes-7000.conf
修改2:去掉cluster-node-timeout 15000前面的#

至此,redis.conf配置文件修改完成

這個配置文件是端口爲7000的配置文件,將此配置文件在win10系統上更改文件名爲:redis-7000.conf,再傳到linux測試機上的對應的目錄:/home/rdsclsr/redis/redis-5.0.8/rediscluster/7000/

接下來就是在win10中修改redis-7000.conf文件名或者複製一份後改文件名爲:redis-7001.conf…等.,再批量替換爲對應的端口,也就是將配置文件裏的7000替換爲:7001…等,替換直接就是:ctrl+H
在這裏插入圖片描述
我是選擇替換一個傳一個,最後將8個替換完之後在測試機上如下圖:
一共9個配置文件:
在這裏插入圖片描述

3、創建redis集羣啓動腳本

我是在notepat++先編輯好,內容爲:

#!/bin/sh
./redis-server ~/redis/rediscluster/7000/redis-7000.conf
./redis-server ~/redis/rediscluster/7001/redis-7001.conf
./redis-server ~/redis/rediscluster/7002/redis-7002.conf
./redis-server ~/redis/rediscluster/7003/redis-7003.conf
./redis-server ~/redis/rediscluster/7004/redis-7004.conf
./redis-server ~/redis/rediscluster/7005/redis-7005.conf
./redis-server ~/redis/rediscluster/7006/redis-7006.conf
./redis-server ~/redis/rediscluster/7007/redis-7007.conf
./redis-server ~/redis/rediscluster/7008/redis-7008.conf

在測試環境的linux的目錄下:/home/rdsclsr/redis/redis-5.0.8/installs/bin 創建啓動集羣的腳本:redis-startAll.sh

cd /home/rdsclsr/redis/redis-5.0.8/installs/bin
vim redis-startAll.sh

進入之後將編輯好的腳本粘貼到這個腳本文件裏

4、啓動redis集羣

./redis-startAll.sh

如果執行不了,報權限不足就要設置可執行權限:

chmod 755 redis-startAll.sh

查看redis集羣是否啓動:

ps -ef|grep  redis  

在這裏插入圖片描述
至此,redis的集羣的配置就完成了,下面來講ruby的安裝!!!

[花][花]感謝堅持看到這裏的同仁,寫的比較詳細,我也有點累了哈哈哈===

完成3/5啦,堅持就是勝利!!!

可能小夥伴也會疑問,不是有啓動集羣的腳本,爲啥還要安裝ruby呢,剛開始我也鬱悶,但是在我最前面提到的不同主機安裝3主3從的博客裏看到:創建集羣的主控制端,在真實的生產環境,我們一般都是採用不同的主機來安裝配置redis集羣,而不是在一臺主機上,這樣要是一臺主機宕機了,redis集羣也就over了,而且有主控會便於redis集羣的管理。

安裝ruby我是參考的這個博文:原文鏈接

三、ruby的安裝

1、安裝curl

根據這篇博客:不同的主機安裝3主3從的博客來看,需要先安裝curl,由於測試環境的這臺機器有curl,於是我沒有安裝,我也不確定是否真的需要安裝curl,不過有前車之鑑,應該是需要安裝無疑的,安裝curl的話可以根據這篇博客:https://blog.csdn.net/ixiaoc/article/details/92764552 或者別的博文,不過我依舊會選擇先在win10下載後傳到linux解壓後再安裝,下載鏈接

安裝後可以查看到版本就OK~
在這裏插入圖片描述

2、安裝ruby

①下載ruby安裝包:下載鏈接
②傳到測試環境的linux後解壓

我在redis的同級目錄新建了ruby的目錄
在這裏插入圖片描述
進入ruby目錄後,解壓ruby-2.7.1.tar.gz

cd ruby
tar -zxvf  ruby-2.7.1.tar.gz

解壓之後如下圖:
在這裏插入圖片描述
③創建安裝目錄

進入解壓後的目錄,

cd ruby-2.7.1/

在這個目錄下創建installs目錄後進入installs目錄

mkdir installs
cd  installs

④編輯配置並編譯源代碼進行安裝
我的安裝目錄是在剛纔創建的installs目錄下:/home/rdsclsr/ruby/ruby-2.7.1/installs,進入後執行編譯命令:./configure --prefix=/home/rdsclsr/ruby/ruby-2.7.1/installs

cd  /home/rdsclsr/ruby/ruby-2.7.1/installs

./configure --prefix=/home/rdsclsr/ruby/ruby-2.7.1/installs

(prefix是將ruby安裝到指定目錄,我這裏是自定義的目錄)

執行後頁面如下圖:
在這裏插入圖片描述
這個圖是從我參考的博客中找到,當時編譯的時候我沒有截圖[捂臉]參考博文

⑤安裝ruby,執行命令

cd  /home/rdsclsr/ruby/ruby-2.7.1/installs

make && make install

在這裏插入圖片描述
這個圖是從我參考的博客中找到,當時安裝的時候我沒有截圖[捂臉]

安裝後,查看ruby的版本

ruby -v

在這裏插入圖片描述
注:如果想安裝在/usr/local/ruby下,需要root權限,或者直接在root下安裝。

⑤給ruby配置環境變量
我是選擇在/etc/profile裏配置的,需要登錄到root用戶後,給/etc/profile賦予755的權限後,退出root用戶,回到rdsclsr用戶後,才能修改文件,在修改的profile的時候我也遇到了不能修改的錯誤,參考我昨天寫的:原文鏈接

vim /etc/profile

在最後添加:

#ruby
export PATH=/home/rdsclsr/ruby/ruby-2.7.1/installs/bin:$PATH

修改後執行:

source /etc/profile

然後看看path裏面有沒有ruby的配置

echo $PATH  	

在這裏插入圖片描述
至此,Ruby安裝完成!

四、配置3主6從結構

1、進入redis的安裝目錄

cd  /home/rdsclsr/redis/redis-5.0.8

2、執行配置命令

如我參考的同一主機搭建3主6從的博客所言,執行配置命令:

./src/redis-trib.rb create --replicas 2 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 127.0.0.1:7006 127.0.0.1:7007 127.0.0.1:7008

其中的2表示一個主機下掛載幾個從節點, 本集羣配置的是一主2從,3臺主機6臺從機共9臺redis服務器。

執行後,我這裏顯示信息如下:
在這裏插入圖片描述
執行不成功,於是我很聽話的執行了:

redis-cli --cluster create 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 127.0.0.1:7006 127.0.0.1:7007 127.0.0.1:7008 --cluster-replicas 2

執行後如下圖:
在這裏插入圖片描述

3、同意主從配置

中間有個是否同意以上配置,輸入yes或no,yes的話就是同意這個配置,no的話需重新執行上面的命令,選擇自己想要的配置:
在這裏插入圖片描述
最後確認後:
在這裏插入圖片描述

4、查看集羣狀態

到這裏就算大公告成了,可以查看一下集羣狀態

cd /home/rdsclsr/redis/redis-5.0.8/installs
./bin/redis-cli -c -p 7000
cluster info

在這裏插入圖片描述
或者check一下;

cd /home/rdsclsr/redis/redis-5.0.8/installs/bin
./redis-cli --cluster check 127.0.0.1:7001

在這裏插入圖片描述

也可以進行宕機測試(kill 某一個節點的進程),看看節點是否會變化,我這裏就不贅訴啦,感興趣的可以去嘗試一下哦~

至此,集合ruby配置的redis集羣搭建徹底大功告成!
補充:我在執行ruby配置主從的時候報了一個錯:
在這裏插入圖片描述
解決辦法是:修改配置文件:cluster-enabled的值改爲: yes,由於我在配置的時候自己給漏掉了,所以導致的這個錯誤,當然在本文已經進行了糾正,參考:原文鏈接

寫在最後面的話

寫了4個小時多,又檢查了幾遍,最後一看竟然寫了13000多字,哎呀媽呀,可累死我了,終於寫完了,如果覺得對小夥伴有幫助就得留下足跡,點個贊再走唄~~~[偷笑ing]

與君共勉!!!

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