安裝環境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