一、運行環境
| 環境和軟體版本 | 版本 |
|---|---|
| 阿里云Centos | 7.5 |
| Redis | 5.0.7 |
二、節點情況
| 節點:埠 | 角色 |
|---|---|
| 0.0.0.0:7001 | 主節點 |
| 0.0.0.0:7002 | 主節點 |
| 0.0.0.0:7003 | 主節點 |
| 0.0.0.0:7004 | 從節點 |
| 0.0.0.0:7005 | 從節點 |
| 0.0.0.0:7006 | 從節點 |
三、環境準備
mkdir /home/redis-cluster/7001
make install PREFIX=/home/redis-cluster/7001
cp /home/redis-cluster/redis-5.0.7/redis.conf /home/redis-cluster/7001/bin/
修改組態檔以下內容:
# 修改埠為7001
port 7001
# 設定后臺啟動
daemonize yes
# 不限制系結ip
bind 0.0.0.0
# 打開cluster-enabled
cluster-enabled yes
將節點的內容依次復制到其他節點,主從節點之間的密碼要保持一致,注意修改埠,
cp -r /home/redis-cluster/7001/* /home/redis-cluster/7002/
準備一個shell腳本,用來統一啟動節點,
cd 7001/bin
./redis-server redis.conf
cd ../..
cd 7002/bin
./redis-server redis.conf
cd ../..
cd 7003/bin
./redis-server redis.conf
cd ../..
cd 7004/bin
./redis-server redis.conf
cd ../..
cd 7005/bin
./redis-server redis.conf
cd ../..
cd 7006/bin
./redis-server redis.conf
cd ../..
echo "redis-cluster start success..."
賦予執行腳本寫和執行的權限
chmod u+x start.sh
四、安全配置
生產環境下集群不能裸奔,所以要增加安全配置,
# 登錄集群
./redis-cli -h 127.0.0.1 -p 7001 -c
# 設定密碼
config set requirepass 123456
# 密碼登錄
auth 123456
# 設定鏈接密碼
config set masterauth 123456
# 將修改重寫到組態檔中
config rewrite
回去看組態檔,可以發現是重寫了masterauth和requirepass,所以每個節點去修改這兩個配置項也是可以的,

五、集群安裝
運行上面創建的腳本,查看行程是否正常啟動

集群創建,-a后面攜帶的是密碼
./redis-cli --cluster create 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 --cluster-replicas 1 -a 123456
顯示槽的分配和結果情況則表示集群搭建成功

以集群形式訪問
./redis-cli -h 127.0.0.1 -p 7001 -c
# 查看集群狀態
cluster info
# 查看集群節點
cluster nodes
登錄的是7001,添加一個測驗資料set name helloworld,可以看到此時通過計算得到的槽式5789,將資料分配給7002這個節點,

到這基本上就完成了整個Redis-Cluster的搭建部署流程,
六、踩到的坑
1、如果是云服務或者是遠程服務器,redis記得要取消ip的系結,不然后面創建集群的時候會連不上
# 不限制系結ip
bind 0.0.0.0
2、./redis-cli --cluster create創建集群的時候,如果是云服務要記得用外網地址,
客戶端操作資料的時候,會計算槽獲取要操作的Redis節點,節點資訊保存在node.conf里,這里的資訊就是創建集群的時候指定的資訊,如果不是外網地址發生重定向,客戶端拿到的是錯誤地址會導致訪問不到,
3、如果是在同個機器下部署偽集群,可能會出現一直卡在等待客戶端加入,可以看到所有節點的id是一樣的,此時可以修改node.conf的檔案名,例如:node.conf -> node_7001.conf

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/274164.html
標籤:其他
