前言:本文章是從0到1,一步一步搭建起redis集羣
本集羣採用的是同一臺服務器192.168.116.128
一,第一步下載redis
1.1先關閉防火牆
//臨時關閉
systemctl stop firewalld
//禁止開機啓動
systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
1.2下載redis
cd /usr/local
wget http://download.redis.io/releases/redis-3.2.9.tar.gz
1.3解壓redis
tar -zxvf redis-3.2.9.tar.gz
1.4安裝redis
cd redis-3.2.9
Make
cd src
make install PREFIX=/usr/local/redis
1.5移動配置文件到目錄
cd ../
mkdir /usr/local/redis/etc
mv redis.conf /usr/local/redis/etc
第二步,redis集羣搭建
下面正式開啓搭建redis集羣的操作
2.1創建文件夾
我們計劃集羣中 Redis 節點的端口號爲 9001-9006 ,端口號即集羣下各實例文件夾,數據存放在端口號/data 文件夾中。
mkdir /usr/local/redis-cluster
cd redis-cluster/
mkdir -p 9001/data 9002/data 9003/data 9004/data 9005/data 9006/data
2.2複製腳本
在 /usr/local/redis-cluster 下創建 bin 文件夾,用來存放集羣運行腳本,並把安裝好的Redis的src路徑下的運行腳本拷貝過來。
cd /usr/local/redis-cluster
mkdir bin
cd /usr/local/redis-3.2.9/src
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-server redis-trib.rb /usr/local/redis-cluster/bin
3.3複製一個新 Redis 實例
我們現在從已安裝好的 Redis 中複製一個新的實例到 9001 文件夾,並修改 redis.conf 配置
#複製
cp -r /usr/local/redis /usr/local/redis-cluster/9001
#編輯
vi /usr/local/redis-cluster/9001/redis/etc/redis.conf
#注意,修改redis.conf 配置部分,還是常規的這幾項:
#每個節點的端口號
port 9001
#允許後臺啓動
daemonize yes
#綁定當前機器 IP
bind 192.168.116.128
#pid 9001和port要對應--6379改爲9001
pidfile /var/run/redis_9001.pid
#啓動集羣模式
cluster-enabled yes
#9001和port要對應
cluster-config-file nodes9001.conf
#允許超時時間
cluster-node-timeout 15000
#開啓AOF緩存
appendonly yes
#數據文件存放位置--在redis.conf文件最後添加
dir /usr/local/redis-cluster/9001/data/
3.4再複製出五個新 Redis 實例
我們已經完成了一個節點了,其實接下來就是機械化的再完成另外五個節點,其實可以這麼做:把 9001 實例 複製到另外五個文件夾中,唯一要修改的就是 redis.conf 中的所有和端口的相關的信息即可,其實就那麼四個位置。開始操作,看圖:
#\cp -rf 命令是不使用別名來複制,因爲 cp 其實是別名 cp -i,操作時會有交互式確認,比較煩人
\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
3.5修改 9002-9006 的 redis.conf 文件
其實非常簡單了,你通過搜索會發現其實只有四個點需要修改,我們全局替換下吧,進入相應的節點文件夾,做替換就好了。命令非常簡單
#編輯對應的redis.conf
vi /usr/local/redis-cluster/9002/redis/etc/redis.conf
vi /usr/local/redis-cluster/9003/redis/etc/redis.conf
vi /usr/local/redis-cluster/9004/redis/etc/redis.conf
vi /usr/local/redis-cluster/9005/redis/etc/redis.conf
vi /usr/local/redis-cluster/9006/redis/etc/redis.conf
#一行對應着上面的redis.conf文件,按回車鍵之後就:wq保存就行了
:%s/9001/9002
:%s/9001/9003
:%s/9001/9004
:%s/9001/9005
:%s/9001/9006
ps:輸入:%s/9001/9002 ,按回車鍵 再輸入:wq保存即可
ps::%s/9001/9002相當於把9001改爲9002
上面這些步驟完成就差不多了
第三步,安裝集羣所需軟件
3.1由於 Redis 集羣需要使用 ruby 命令,所以我們需要安裝 ruby 和相關接口
yum install ruby
yum install rubygems
#網絡下載不了,只能本地,請看下圖
gem install redis 使用本地上傳方式
redis-3.2.1.gem的百度雲下載地址:
鏈接:https://pan.baidu.com/s/1c0XGOKleJTcf2dECLYxQmg
提取碼:xutj
3.2在/usr/local目錄下 執行命令:
gem install -l redis-3.2.1.gem
第四步,啓動集羣
1.9001-9006六個節點
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/9001/redis/etc/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/9002/redis/etc/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/9003/redis/etc/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/9004/redis/etc/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/9005/redis/etc/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/9006/redis/etc/redis.conf
2.集羣環境測試--192.168.116.128全部改爲你的服務器ip地址
/usr/local/redis-cluster/bin/redis-trib.rb create --replicas 1 192.168.116.128:9001 192.168.116.128:9002 192.168.116.128:9003 192.168.116.128:9004 192.168.116.128:9005 192.168.116.128:9006
3.隨便找一個節點測試試
/usr/local/redis-cluster/9001/redis/bin/redis-cli -c -h 192.168.116.128 -p 9001
9001節點set name的時候會通過算法存儲在對應的卡槽裏,並跳轉到改卡槽節點
這就完成啦,安裝就10分鐘不到