redis集羣是一個由多個主從節點羣組成的分佈式服務器羣,它具有複製、高可用和分片特性。Redis集羣不需要sentinel哨兵也能完成節點移除和故障轉移的功能。需要將每個節點設置成集羣模式,這種集羣模式沒有中心節點,可水平擴展,據官方文檔稱可以線性擴展到上萬個節點(官方推薦不超過1000個節點)。redis集羣的性能和高可用性均優於之前版本的哨兵模式,且集羣配置非常簡單
安裝虛擬機:此步驟省略。具體可參考博主另外一篇文章《搭建centos7虛擬機》https://blog.csdn.net/qq_34042417/article/details/104121535
安裝好虛擬機後能夠訪問外網可以ping通www.baidu.com即可。
連接虛擬機:
redis安裝
下載地址:http://redis.io/download 安裝步驟:
# 新建mkdir redis
# 進入cd redis
# 把下載好的redis-5.0.2.tar.gz放在/usr/local/lanbing文件夾下,並解壓
#wget http://download.redis.io/releases/redis-5.0.4.tar.gz
#tar xzf redis-5.0.4.tar.gz
# 進入到解壓好的redis-5.0.4目錄下,進行編譯與安裝
#make & make install
如果出現該錯誤
執行命令:make MALLOC=libc後再執行make & make install
#修改redis.conf裏的daemonize改爲yes)
# 啓動並指定配置文件 src/redis-server redis.conf
# 驗證啓動是否成功 ps -ef | grep redis
# 進入redis客戶端 /usr/local/lanbing/redis-5.0.4/src/redis-cli
# 退出客戶端 quit
# 關閉redis進程
ps -ef | grep redis
Kill -9 進程號
redis集羣搭建
redis集羣需要至少要三個master節點,我們這裏搭建三個master節點,並且給每個master再搭建一個slave節點,總共6個redis節點,這裏用三臺機器部署6個redis實例,每臺機器一主一從,搭建集羣的步驟如下:
第一步:在第一臺機器的/usr/local/lanbing下創建文件夾redis-cluster,然後在其下面分別創建2個文件夾如下
1.mkdir -p /usr/local/lanbing/redis-cluster
2.mkdir redis-cluster/8001、 mkdir redis-cluster/8004
3.把之前的redis.conf配置文件copy到8001下
4.cp redis-5.0.4/redis.conf redis-cluster/8001
5.重命名爲mv redis.conf redis-8001.conf
第二步修改如下內容 redis-cluster/8001/redis-8001.conf
1. daemonize yes
2. port 8001(分別對每個機器的端口號進行設置)
3. dir /usr/local/lanbing/redis-cluster/8001/(指定數據文件存放位置,必須要指定不同的目錄位置,不然會丟失數據)
4. cluster-enabled yes(啓動集羣模式)
5. cluster-config-file nodes-8001.conf(集羣節點信息文件,這裏800x最好和port對應上)(6)cluster-node-timeout 5000
6. # bind 127.0.0.1(去掉bind綁定訪問ip信息)
8. appendonly yes
9. requirepass lanbing (設置redis訪問密碼)
10. masterauth lanbing (設置集羣節點間訪問密碼,跟上面一致)
第三步:把修改後的配置文件,copy到8004,修改第2、3、5項裏的端口號,可以用批量
啓動進程
/usr/local/redis/redis-5.0.4/src/redis-server /usr/local/redis/redis-cluster/8001/redis.conf
/usr/local/redis/redis-5.0.4/src/redis-server /usr/local/redis/redis-cluster/8004/redis.conf
啓動成功,這臺機器就已安裝完畢。
第四步:
修改第二臺虛擬機配置
#cd /usr/local/lanbing/redis-cluster
重命名文件夾mv 8001 8002、 mv 8004 8005
修改8002下redis-8001.conf文件重命名redis-8002.conf將8001全部改成8002
修改8005下redis-8004.conf文件重命名redis-8005.conf將8004全部改成8005
修改第三臺虛擬機配置
#cd /usr/local/lanbing/redis-cluster
重命名文件夾mv 8001 8003、 mv 8004 8006
修改8003下redis-8001.conf文件重命名redis-8003.conf將8001全部改成8003
修改8006下redis-8004.conf文件重命名redis-8006.conf將8004全部改成8006
啓動第一臺虛擬機redis01的redis:
/usr/local/lanbing/redis-5.0.4/src/redis-server /usr/local/lanbing/redis-cluster/8001/redis.conf
/usr/local/lanbing/redis-5.0.4/src/redis-server /usr/local/lanbing/redis-cluster/8004/redis.conf
啓動第二臺虛擬機redis02的redis:
/usr/local/lanbing/redis-5.0.4/src/redis-server /usr/local/lanbing/redis-cluster/8002/redis.conf
/usr/local/lanbing/redis-5.0.4/src/redis-server /usr/local/lanbing/redis-cluster/8005/redis.conf
啓動第三臺虛擬機redis03的redis:
/usr/local/lanbing/redis-5.0.4/src/redis-server /usr/local/lanbing/redis-cluster/8003/redis.conf
/usr/local/lanbing/redis-5.0.4/src/redis-server /usr/local/lanbing/redis-cluster/8006/redis.conf
第六步:用redis-cli創建整個redis集羣(redis5以前的版本集羣是依靠ruby腳本redis-trib.rb實現)
/usr/local/redis-5.0.4/src/redis-cli -a lanbing --cluster create --cluster-replicas 1 192.168.0.61:8001 192.168.0.62:8002 192.168.0.63:8003 192.168.0.61:8004 192.168.0.62:8005 192.168.0.63:8006 代表爲每個創建的主服務器節點創建一個從服務器節點
第七步:驗證集羣:
1. 連接任意一個客戶端即可:./redis-cli -c -h -p (-a訪問服務端密碼,-c表示集羣模式,指定ip地址和端口號)如:/usr/local/lanbing/redis-5.0.4/src/redis-cli -a zhuge -c -h 192.168.0.61 -p 8002
2. 進行驗證: cluster info(查看集羣信息)、cluster nodes(查看節點列表)
到此爲止redis高可用集羣已經搭建好了。