引言:在之前的幾篇文章中依次介紹了分布式緩存技術(shù)以及Redis的基本知識和Redis主從復(fù)制模式和哨兵模式的安裝中捆,接下來將帶領(lǐng)大家進(jìn)行Redis集群模式的安裝(企業(yè)級應(yīng)用開發(fā)中鞋既,此種模式最為常見)几莽。
1.分布式緩存技術(shù)總結(jié)筆記
2.分布式緩存利器之Redis
3.分布式緩存利器之Redis安裝與配置
1.集群概述
在redis3.0以前,提供了Sentinel工具來監(jiān)控各Master的狀態(tài)沸久,如果Master異常磷醋,則會做主從切換,將slave作為master墓猎,將master作為slave捆昏。其配置也是稍微的復(fù)雜,并且各方面表現(xiàn)一般”姓矗現(xiàn)在redis3.0已經(jīng)支持集群的容錯(cuò)功能骗卜,并且非常簡單。
每個(gè)集群有hash槽的概念,hash槽相當(dāng)于索引的概念左胞,可以快速定位到相應(yīng)的節(jié)點(diǎn)進(jìn)行數(shù)據(jù)查詢--主節(jié)點(diǎn)才有槽的概念寇仓,從節(jié)點(diǎn)主讀。
2.集群搭建
Redis集群的搭建至少需要三主三從烤宙,故為了簡單起見遍烦,本事例在單機(jī)上模擬出集群模式,實(shí)際生產(chǎn)環(huán)境可以按本步驟稍微改一下配置即可门烂。
本集群搭建方案如下表所示:
在一個(gè)單機(jī)中搭建集群乳愉,端口肯定不同,故如上表所示屯远,每個(gè)文件夾(目錄7001-7006)即代表一個(gè)節(jié)點(diǎn)(為方便蔓姚,其端口號也為該目錄名稱)。
2.1 創(chuàng)建集群節(jié)點(diǎn)目錄
創(chuàng)建一個(gè)文件夾redis-cluster慨丐,然后在其下面分別創(chuàng)建6個(gè)文件夾如下坡脐,7001-7006,作為集群的配置文件存放目錄房揭,在redis-cluster下創(chuàng)建/bin文件夾存放服務(wù)腳本备闲。
mkdir -p /usr/local/redis-cluster
mkdir 7001 7002 7003 7004 7005 7006
mkdir cluster/bin
mkdir cluster/700*/data
(以下執(zhí)行腳本在/usr/local/redis-3.2.8/src和/usr/local/bin目錄下)
mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server redis-trib.rb /usr/local/redis-cluster/bin
所有操作完成后晌端,如下圖所示:
2.2 集群配置
把之前的redis.conf配置文件(可參考文章分布式緩存利器之Redis安裝與配置)分別copy到700下,進(jìn)行修改各個(gè)文件內(nèi)容恬砂,也就是對700下的每一個(gè)copy的redis.conf文件進(jìn)行修改如下:
(1)daemonize yes
(2)port 700*(分別對每個(gè)機(jī)器的端口號進(jìn)行設(shè)置)
(3)bind 192.168.56.200 (必須要綁定當(dāng)前機(jī)器的ip咧纠,不然會無限悲劇下去哇..深坑勿入!P褐琛F岣帷)
(4)dir /usr/local/redis-cluster/700*/data/(指定數(shù)據(jù)文件存放位置,必須要指定不同的目錄位置狱掂,不然會丟失數(shù)據(jù)演痒,深坑勿入!G鞑摇D袼场)
(5)cluster-enabled yes(啟動(dòng)集群模式,開始玩耍)
(6)cluster-config-file nodes700*.conf(這里700x最好和port對應(yīng)上)
(7)cluster-node-timeout 5000
(8)appendonly yes
節(jié)點(diǎn)7001下的情況如下:
2.3 安裝ruby
由于redis集群需要使用ruby命令器虾,所以我們需要安裝ruby讯嫂。
(1)yum install ruby
(2)yum install rubygems
(3)gem install redis (安裝redis和ruby的接口)
2.4 啟動(dòng)驗(yàn)證
分別啟動(dòng)6個(gè)redis實(shí)例,然后檢查是否啟動(dòng)成功
(1)/usr/local/redis-cluster/bin/redis-server /usr/local/redis-cluster/700*/redis.conf
(2)ps -el | grep redis 查看是否啟動(dòng)成功
啟動(dòng)驗(yàn)證如下圖所示曾撤,即表示啟動(dòng)成功:
2.5 建立集群主從關(guān)系
建立集群主從關(guān)系需要執(zhí)行redis-trib.rb命令
/usr/local/redis-cluster/bin/redis-trib.rb create --replicas 1 192.168.56.200:7001 192.168.56.200:7002 192.168.56.200:7003 192.168.56.200:7004 192.168.56.200:7005 192.168.56.200:7006
2.6 集群驗(yàn)證
到此為止我們集群搭建成功端姚!進(jìn)行驗(yàn)證:
(1)連接任意一個(gè)客戶端即可:./redis-cli -c -h -p (-c表示集群模式,指定ip地址和端口號)如:
/usr/local/redis-cluster/bin/redis-cli -c -h 192.168.56.200 -p 7001
(2)進(jìn)行驗(yàn)證:cluster info(查看集群信息)挤悉、cluster nodes(查看節(jié)點(diǎn)列表)
(3)進(jìn)行數(shù)據(jù)操作驗(yàn)證
(4)關(guān)閉集群則需要逐個(gè)進(jìn)行關(guān)閉渐裸,使用命令:
/usr/local/redis-cluster/bin/redis-cli -c -h 192.168.56.200 -p 7001 shutdown
2.7 開機(jī)自啟動(dòng)
如果需要開機(jī)自動(dòng)啟動(dòng)redis集群服務(wù),則做如下配置即可:
vim /etc/rc.local
/usr/local/redis-cluster/bin/redis-server /usr/local/redis-cluster/7001/redis.conf
/usr/local/redis-cluster/bin/redis-server /usr/local/redis-cluster/7002/redis.conf
/usr/local/redis-cluster/bin/redis-server /usr/local/redis-cluster/7003/redis.conf
/usr/local/redis-cluster/bin/redis-server /usr/local/redis-cluster/7004/redis.conf
/usr/local/redis-cluster/bin/redis-server /usr/local/redis-cluster/7005/redis.conf
/usr/local/redis-cluster/bin/redis-server /usr/local/redis-cluster/7006/redis.conf
2.8 注意事項(xiàng)
當(dāng)出現(xiàn)集群無法啟動(dòng)時(shí)装悲,刪除臨時(shí)的數(shù)據(jù)文件昏鹃,再次重新啟動(dòng)每一個(gè)redis服務(wù),然后重新構(gòu)造集群環(huán)境诀诊。
至此洞渤,Redis集群的搭建與配置就全部完成,如果有哪里不明白或者不正確的地方属瓣,大家可以留言或者評論载迄,歡迎大家指正!
我是一名奮斗在二線城市抡蛙,每天擠公交上班寫代碼的程序猿护昧!勵(lì)志在有限的時(shí)間能夠貢獻(xiàn)出自己最大的能量!請持續(xù)關(guān)注粗截!我在簡書等你惋耙!