Redis集羣cluster環境(快速搭建過程10分鐘)

安裝環境CentOS Linux release 7.5.1804 (Core)

如果服務器沒有連接網絡,請按步驟自行百度其離線方式

話不多說,開整!!!


一、安裝redis

#下載至/home/install(或windows系統下載後上傳)

  mkdir /usr/local/install

  cd usr/local/install

  wget http://124.205.69.171/files/6160000006F201F1/download.redis.io/releases/redis-4.0.11.tar.gz

#解壓

  tar -zxvf redis-4.0.11.tar.gz 

#移動

  mv redis-4.0.11 /usr/local/redis-4.0.11

#編譯安裝
    cd /usr/local/redis-4.0.11
    make && make install

二、配置六個redis服務(官方建議3主3從)

 

1.創建集羣目錄

              mkdir /usr/local/redis-cluster/

              cd  /usr/local/redis-cluster/

              mkdir 7001

              mkdir 7002

              mkdir 7003

              mkdir 7004

              mkdir 7005

              mkdir 7006

2.修改配置文件

              cd  /usr/local/redis-cluster/

    cp /usr/local/redis-4.0.11/redis.conf  ./7001/redis.conf

    vim ./7001/redis.conf

    #找到如下KEY,放開註釋,修改值內容

    bind 0.0.0.0#不限制訪問ip和遠程連接

    protected-mode no#保護模式

    port 7001 #修改端口號 

    daemonize yes#後臺運行線程

    pidfile /var/run/redis_7001.pid #守護進程文件

    dbfilename dump7001.rdb#緩存持久存儲文件名稱

    dir /usr/local/redis-cluster/7001/#db文件存放路徑

    appendonly yes#開啓日誌實時持久

    appendfilename "appendonly7001.aof"#日誌名稱

    cluster-enabled yes#開啓集羣

    cluster-config-file nodes_7001.conf#集羣節點文件

    cluster-node-timeout 15000#集羣通信超過該時長視爲掛掉,單位毫秒

3.拷貝配置文件

              cd  /usr/local/redis-cluster/

    cp ./7001/redis.conf ./7002/redis.conf

    cp ./7001/redis.conf ./7003/redis.conf

    cp ./7001/redis.conf ./7004/redis.conf

    cp ./7001/redis.conf ./7005/redis.conf

    cp ./7001/redis.conf ./7006/redis.conf

4.手工修改配置文件

    vim ./7002/redis.conf

    :%s/7001/7002/g#所有7001的字符串替換爲7002

               .

               .

               .

    vim ./7006/redis.conf

    :%s/7001/7006/g#所有7001的字符串替換爲7006


三、安裝redis依賴(ruby)

1.安裝依賴包

    yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison sqlite-devel iconv-devel

2.安裝 rvm

    curl -L get.rvm.io | bash -s stable

3.拷貝中間紅框中的執行

4.再次安裝rvm(命令同上:curl -L get.rvm.io | bash -s stable )

安裝成功,黃字提示請把用戶添加到rvm用戶組(執行)

    usermod -G  rvm root

5.添加生效指令

    echo "source /etc/profile.d/rvm.sh" >> ~/.bashrc && source /etc/profile.d/rvm.sh

6.安裝ruby(等得有點久,不要慌,出現下圖就可以了)

    rvm install ruby

7.安裝ruby與redis接口

    gem install redis

    yum install rubygems


四、啓動redis並創建集羣

1.啓動所有的redis

cd  /usr/local/redis-cluster/
/usr/local/redis-4.0.11/src/redis-server /usr/local/redis-cluster/7001/redis.conf
/usr/local/redis-4.0.11/src/redis-server /usr/local/redis-cluster/7002/redis.conf
/usr/local/redis-4.0.11/src/redis-server /usr/local/redis-cluster/7003/redis.conf
/usr/local/redis-4.0.11/src/redis-server /usr/local/redis-cluster/7004/redis.conf
/usr/local/redis-4.0.11/src/redis-server /usr/local/redis-cluster/7005/redis.conf
/usr/local/redis-4.0.11/src/redis-server /usr/local/redis-cluster/7006/redis.conf

2.創建測試用集羣(如redis需要設置密碼或有項目需要連接集羣-->見六、實戰)

    /usr/local/redis-4.0.11/src/redis-trib.rb create --replicas 1 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

3.測試驗證

隨便鏈接一個節點,我連接的是7001,可以退出連接其他節點去取值(這裏就不測試了)


五、報錯處理:

重新編譯redis,刪除7001-7006文件夾下除redis.conf之外的文件,然後gem install redis,再次執行即可

如果使用阿里雲,可能提示can not connect ... 請配置安全組,放開7001-7006端口

如果一直停留在join....或者使用代碼連接上不,請關閉防火牆或配置安全規則,然後打開集線端口(redis端口+10000即[17001-17006])或者移步實戰應用.


六、實戰應用(設置密碼並開啓集羣模式)

1.如果用127.0.0.1進行過測試,請killall redis-server重新編譯redis,刪除7001-7006文件夾下除redis.conf之外的文件,然後gem install redis(沒有開啓過集羣模式請移步2.↓)

2.在7001-7006文件夾下的所有redis.conf文件中放開requirepass屬性的註釋,然後設置想要的密碼

3.啓動所有的redis

#!/bin/sh
/usr/local/redis-4.0.11/src/redis-server /usr/local/redis-cluster/7001/redis.conf
/usr/local/redis-4.0.11/src/redis-server /usr/local/redis-cluster/7002/redis.conf
/usr/local/redis-4.0.11/src/redis-server /usr/local/redis-cluster/7003/redis.conf
/usr/local/redis-4.0.11/src/redis-server /usr/local/redis-cluster/7004/redis.conf
/usr/local/redis-4.0.11/src/redis-server /usr/local/redis-cluster/7005/redis.conf
/usr/local/redis-4.0.11/src/redis-server /usr/local/redis-cluster/7006/redis.conf

 4.修改gems工具client.rb參數

找到你們自己本地的client.rb文件(我的是/usr/local/ruby/lib/ruby/gems/2.2.0/gems/redis-4.0.1/lib/redis/client.rb)

進入該文件夾-->vim ./client.rb   修改創建集羣時的連接密碼如"admin",注意看圖,然後報存!

 4.開啓集羣模式(替換黑色字體爲你的外網或項目能訪問的ip每個地址之間有一個空格)

/usr/local/redis-4.0.11/src/redis-trib.rb create --replicas 1 yoursIP:7001 yoursIP:7002 yoursIP:7003 yoursIP:7004 yoursIP:7005 yoursIP:7006

中間需要輸入一次yes,出現下圖就成功了,附贈redis保存錯誤的截圖(相信我只是附贈...)

保存失敗(集羣模式,連接請使用集羣連接參數-c)

最後使用代碼連接測試一波,完美!!!

七、開機啓動

mkdir /usr/local/redis-cluster/script

cd /usr/local/redis-cluster/script/

1.編寫 startAll.sh

vim startAll.sh

#!/bin/sh
/usr/local/redis-4.0.11/src/redis-server /usr/local/redis-cluster/7001/redis.conf
/usr/local/redis-4.0.11/src/redis-server /usr/local/redis-cluster/7002/redis.conf
/usr/local/redis-4.0.11/src/redis-server /usr/local/redis-cluster/7003/redis.conf
/usr/local/redis-4.0.11/src/redis-server /usr/local/redis-cluster/7004/redis.conf
/usr/local/redis-4.0.11/src/redis-server /usr/local/redis-cluster/7005/redis.conf
/usr/local/redis-4.0.11/src/redis-server /usr/local/redis-cluster/7006/redis.conf

2.編寫 stopAll.sh

vim stopAll.sh

#!/bin/sh
/usr/local/redis-4.0.11/src/redis-cli -c -a yourPassword -p 7001 shutdown
/usr/local/redis-4.0.11/src/redis-cli -c -a yourPassword -p 7002 shutdown
/usr/local/redis-4.0.11/src/redis-cli -c -a yourPassword -p 7003 shutdown
/usr/local/redis-4.0.11/src/redis-cli -c -a yourPassword -p 7004 shutdown
/usr/local/redis-4.0.11/src/redis-cli -c -a yourPassword -p 7005 shutdown
/usr/local/redis-4.0.11/src/redis-cli -c -a yourPassword -p 7006 shutdown

3.編寫restart.sh 

vim restart.sh
#!/bin/sh
systemctl stop redis-cluster
systemctl start redis-cluster

4.改變權限

cd /usr/local/redis-cluster/script/

chmod 777 ./*.sh

5.編寫自啓服務

cd /usr/lib/systemd/system/

vim redis-cluster.service

添加內容如下

[Unit]
Description=redis-cluster
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/redis-cluster/script/startAll.sh
ExecStop=/usr/local/redis-cluster/script/stopAll.sh
ExecReload=/usr/local/redis-cluster/script/restart.sh
[Install]
WantedBy=multi-user.target

改變權限

chmod 777 redis-cluster.service

進程服務重加載

systemctl daemon-reload

開機啓動集羣

systemctl enable redis-cluster.service

啓動集羣

systemctl start redis-cluster.service

關閉集羣

systemctl stop redis-cluster.service

重啓集羣

systemctl restart redis-cluster.service

好啦,感謝閱讀,歡迎轉載,轉載還請註明原出處...

感謝七脈本文參考原地址:https://www.cnblogs.com/zwcry/p/9174233.html

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