Redis5.0.8集群安裝


redis是根據redis的配置文件啟動的,方便管理,我們根據端口創建單節點的文件夾。

本篇文章基於上一篇單機Redis安裝,https://www.cnblogs.com/diaoye/p/12762440.html

1.創建文件夾

mkdir /usr/local/redis-cluster
cd redis-cluster/
mkdir -p 9001/data 9002/data 9003/data 9004/data 9005/data 9006/data

此處切忌偷懶,6個是有6個的道理的,三主三從,三個主節點方便選舉,不然出現平票是選不出老大的。

2.復制運行腳本

在 /usr/local/redis-cluster 下創建bin文件夾,用來存放集群運行腳本,並把安裝好的Redis的src路徑下的運行腳本拷貝過來,命令如下:

mkdir redis-cluster/bin
cd /usr/local/redis/src
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server redis-trib.rb /usr/local/redis-cluster/bin

3.復制一個實例到9001文件夾下,並修改redis.conf配置

cp /usr/local/redis/* /usr/local/redis-cluster/9001

修改以下參數

port 9001(每個節點的端口號)
daemonize yes
bind 192.168.119.131(綁定當前機器 IP)
dir /usr/local/redis-cluster/9001/data/(數據文件存放位置)
pidfile /var/run/redis_9001.pid(pid 9001和port要對應)
cluster-enabled yes(啟動集群模式)
cluster-config-file nodes9001.conf(9001和port要對應)
cluster-node-timeout 15000
appendonly yes

集群搭建配置重點就是取消下圖中的這三個配置的注釋

 4.再復制出五個實例

我們已經完成了一個節點了,其實接下來就是機械化的再完成另外五個節點,其實可以這么做:把 9001 實例 復制到另外五個文件夾中,唯一要修改的就是 redis.conf 中的所有和端口的相關的信息即可,其實就那么四個位置。開始操作,看圖:

\cp -rf /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9002
\cp -rf /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9003
\cp -rf /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9004
\cp -rf /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9005
\cp -rf /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9006

\cp -rf 命令是不使用別名來復制,因為 cp 其實是別名 cp -i,操作時會有交互式確認,比較煩人。

5.修改9002-9006 的 redis.conf 文件

其實非常簡單了,你通過搜索會發現其實只有四個點需要修改,我們全局替換下吧,進入相應的節點文件夾,做替換就好了。命令非常簡單,看圖:

vim redis.conf
:%s/9001/9002g

回車后,就會有替換幾個地方成功的提示,不放心可以手工檢查下

其實我們也就是替換了下面這四行:

port 9002
dir /usr/local/redis-cluster/9002/data/
cluster-config-file nodes-9002.conf
pidfile /var/run/redis_9002.pid

到這里,我們已經把最基本的環境搞定了,接下來就是啟動了。

6.啟動9001-9006節點

/usr/local/redis-cluster/bin/redis-server /usr/local/redis-cluster/9001/redis.conf 
/usr/local/redis-cluster/bin/redis-server /usr/local/redis-cluster/9002/redis.conf 
/usr/local/redis-cluster/bin/redis-server /usr/local/redis-cluster/9003/redis.conf 
/usr/local/redis-cluster/bin/redis-server /usr/local/redis-cluster/9004/redis.conf 
/usr/local/redis-cluster/bin/redis-server /usr/local/redis-cluster/9005/redis.conf 
/usr/local/redis-cluster/bin/redis-server /usr/local/redis-cluster/9006/redis.conf

可以檢查一下是否啟動成功

ps -ef|grep redis

隨便找個節點測試

/usr/local/redis-cluster/bin/redis-cli -h 192.168.119.131 -p 9001
set name mafly

連接成功了,但報錯了

(error) CLUSTERDOWN Hash slot not served(不提供集群的散列槽)

這是因為雖然我們配置並啟動了 Redis 集群服務,但是他們暫時還並不在一個集群中,互相直接發現不了,而且還沒有可存儲的位置,就是所謂的slot(槽)

7.創建集群

./usr/local/redis-cluster/bin/redis-cli --cluster create 192.168.0.229:9001 192.168.0.229:9002 192.168.0.229:9003 192.168.0.229:9004 192.168.0.229:9005 192.168.0.229:9006 --cluster-replicas 1

--replicas 1表示主從復制比例為 1:1,即一個主節點對應一個從節點;然后,默認給我們分配好了每個主節點和對應從節點服務,以及 solt 的大小,因為在 Redis 集群中有且僅有 16383 個 solt ,默認情況會給我們平均分配,當然你可以指定,后續的增減節點也可以重新分配。

 

 8.測試集群是否可用

./usr/local/redis-cluster/bin/redis-cli -h 192.168.0.229 -c -p 9001

 

 成功!

 

參考的大佬文檔

https://www.cnblogs.com/mafly/p/redis_cluster.html

https://www.cnblogs.com/zhanh247/p/12709727.html

https://www.cnblogs.com/AzkbanHan/p/11497589.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM