最近在學習Redis叢集 搭了幾天(菜鳥) 終于搭建好了 今晚記錄一下最近搭建的過程 官方推薦搭建叢集最好是6個節點 而且是 3.0版本以上 是以我先了三台虛拟機 分别是 192.168.31.121 , 192.168.31.122 ,192.168.31.123 ,linux 系統是CentOS 7 分别在每個安裝兩個redis ,去中心化的搭建入題
一、開端口或者是關閉防火防 我是選擇是關閉防火牆
systemctl stop firewalld
二、下載下傳和解壓 編譯 安裝 我的目錄是 /usr/local/software/下
下載下傳:
wget http://download.redis.io/releases/redis-3.2.11.tar.gz
解壓
tar - zxvf redis-3.2.11.tar.gz
編譯
cd redis-3.2.11
make
安裝
cd src
make install
三、 修改配置 進入 redis-3.2.11
(1)在121 和122 以及123 機子各複制一份
指令 cp -r redis-3.2.11 /usr/local/software/redis-3.2.11-2
cd /redis-3.2.11/
修改配置檔案vim redis.conf
###121 第一個節點
bind 192.168.31.121 ##本機ip
port 7000
daemonize yes ###啟動背景運作
pidfile /var/run/redis_7000.pid ##非必須改
appendonly yes
cluster-enabled yes ##開啟叢集
cluster-config-file nodes-7000.conf ##非必須改 隻是防止殘留舊資料 影響搭建叢集
cluster-node-timeout 15000 ##逾時時間 5s
###121 第二個節點
bind 192.168.31.121 ##本機ip
port 7001
daemonize yes ###啟動背景運作
pidfile /var/run/redis_7001.pid ##非必須改
appendonly yes
cluster-enabled yes ##開啟叢集
cluster-config-file nodes-7001.conf ##非必須改 隻是防止殘留舊資料 影響搭建叢集
cluster-node-timeout 15000 ##逾時時間 5s
###121 第一個節點
bind 192.168.31.122 ##本機ip
port 7002
daemonize yes ###啟動背景運作
pidfile /var/run/redis_7002.pid ##非必須改
appendonly yes
cluster-enabled yes ##開啟叢集
cluster-config-file nodes-7002.conf ##非必須改 隻是防止殘留舊資料 影響搭建叢集
cluster-node-timeout 15000 ##逾時時間 5s
###122 第二個節點
bind 192.168.31.122 ##本機ip
port 7003
daemonize yes ###啟動背景運作
pidfile /var/run/redis_7003.pid ##非必須改
appendonly yes
cluster-enabled yes ##開啟叢集
cluster-config-file nodes-7003.conf ##非必須改 隻是防止殘留舊資料 影響搭建叢集
cluster-node-timeout 15000 ##逾時時間 5s
###123 第一個節點
bind 192.168.31.123 ##本機ip
port 7004
daemonize yes ###啟動背景運作
pidfile /var/run/redis_7004.pid ##非必須改
appendonly yes
cluster-enabled yes ##開啟叢集
cluster-config-file nodes-7004.conf ##非必須改 隻是防止殘留舊資料 影響搭建叢集
cluster-node-timeout 15000 ##逾時時間 5s
###123 第二個節點
bind 192.168.31.123 ##本機ip
port 7005
daemonize yes ###啟動背景運作
pidfile /var/run/redis_7005.pid ##非必須改
appendonly yes
cluster-enabled yes ##開啟叢集
cluster-config-file nodes-7005.conf ##非必須改 隻是防止殘留舊資料 影響搭建叢集
cluster-node-timeout 15000 ##逾時時間 5s
###所有的節點配置完成
四 啟動所有的節點 redis 進入 cd /usr/local/software/redis-3.2.11-2/src
./redis-server ../redis.conf ##啟動
ps -ef |grep redis ##檢視是啟動了
五加入叢集中 提前是要安裝對象依賴和環境
指令
yum -y install ruby ruby-devel rubygems rpm-build
gem install redis --version 3.0.0
##加入叢集 任意一個節點執行
./redis-trib.rb create --replicas 1 192.168.31.121:7000 192.168.31.121:7001 192.168.31.122:7002 192.168.31.122:7003 192.168.31.123:7004 192.168.31.123:7005
然後會出現一個提示 Can I set the above configuration? (type 'yes' to accept): yes
輸入yes 回車
最後顯示
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
說明叢集成功
然後執行以下
./redis-cli -c -h 192.168.31.121 -p 7000
就可以輸入redis對應指令
總結:
在搭建過程中遇到很多問題
比如
錯誤提示是
slot插槽被占用了(這是 搭建叢集前時,以前redis的舊資料和配置資訊沒有清理幹淨。)
解決方案是
最好是在搭建之前要清理所有的節點的資料
用redis-cli 登入到每個節點執行 flushall 和 cluster reset 就可以了。