網(wǎng)站系統(tǒng)管理計(jì)劃怎樣做好網(wǎng)絡(luò)營(yíng)銷推廣
提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔
文章目錄
- 一、redis集群
- 1.單節(jié)點(diǎn)redis服務(wù)器帶來的問題
- 2.集群redis
- 3.集群的優(yōu)勢(shì)
- 4.redis集群的實(shí)現(xiàn)方法
- 5.redis群集的三種模式
- 5.1 主從復(fù)制
- 5.2 哨兵
- 5.3 集群
- 二、Redis 主從復(fù)制
- 1.主從復(fù)制的概念
- 2.主從復(fù)制的作用
- 3.主從復(fù)制流程
- 4.搭建Redis 主從復(fù)制
- 4.1 安裝 Redis
- 4.2 修改 Redis 配置文件(Master節(jié)點(diǎn)操作)
- 4.3 修改 Redis 配置文件(Slave1、2節(jié)點(diǎn)操作)
- 4.4 驗(yàn)證主從
- 三、Redis 哨兵模式
- 1.哨兵模式的出現(xiàn)
- 2.哨兵的核心功能
- 3.哨兵模式原理
- 4.哨兵模式的作用
- 5.哨兵結(jié)構(gòu)
- 6.故障轉(zhuǎn)移機(jī)制
- 7.主節(jié)點(diǎn)的選舉
- 8.搭建Redis 哨兵模式
- 8.1修改 Redis 哨兵模式的配置文件(所有節(jié)點(diǎn)操作)
- 8.2啟動(dòng)哨兵模式
- 8.3 查看哨兵信息
- 8.4 故障模擬
- 四、 Redis 群集模式
- 1.群集模式概念
- 2.集群的作用
- 3.Redis集群的數(shù)據(jù)分片
- 3.1 以3個(gè)節(jié)點(diǎn)組成的集群為例
- 4.Redis集群的主從復(fù)制模型
- 5.搭建Redis 群集模式
- 5.1 搭建環(huán)境
- 5.2 開啟群集功能
- 5.3 啟動(dòng)redis節(jié)點(diǎn)
- 5.4 啟動(dòng)集群
- 5.5 測(cè)試群集
一、redis集群
1.單節(jié)點(diǎn)redis服務(wù)器帶來的問題
(1)單點(diǎn)故障、服務(wù)不可用
(2)無法處理大量的并發(fā)數(shù)據(jù)請(qǐng)求
(3)數(shù)據(jù)丟失
2.集群redis
(1)提供在多個(gè)redis節(jié)點(diǎn)間共享數(shù)據(jù)的程序集
(2)redis集群并不支持處理多個(gè)keys命令,因需在不同的節(jié)點(diǎn)間移動(dòng)數(shù)據(jù),從而達(dá)不到像redis那樣的性能,在高負(fù)載的情況下,可能會(huì)導(dǎo)致不同預(yù)判的錯(cuò)誤
(3)通過分區(qū)來提供一定程度的可用性
3.集群的優(yōu)勢(shì)
(1)自動(dòng)分割數(shù)據(jù)到不同的節(jié)點(diǎn)上
(2)整個(gè)集群的部分節(jié)點(diǎn)失敗或者不可達(dá)的情況下能夠繼續(xù)處理命令
4.redis集群的實(shí)現(xiàn)方法
(1)有客戶端分片
(2)代理分片
(3)服務(wù)器端分片
5.redis群集的三種模式
redis群集有三種模式,分別是主從同步/復(fù)制、哨兵模式、Cluster集群
5.1 主從復(fù)制
(1)概念作用
主從復(fù)制是高可用Redis的基礎(chǔ),哨兵和集群都是在主從復(fù)制基礎(chǔ)上實(shí)現(xiàn)高可用的。
主從復(fù)制主要實(shí)現(xiàn)了數(shù)據(jù)的多機(jī)備份,以及對(duì)于讀操作的負(fù)載均衡和簡(jiǎn)單的故障恢復(fù)。
(2)主從復(fù)制的缺陷
故障恢復(fù)無法自動(dòng)化;寫操作無法負(fù)載均衡;存儲(chǔ)能力受到單機(jī)的限制。
5.2 哨兵
(1)作用
在主從復(fù)制的基礎(chǔ)上,哨兵實(shí)現(xiàn)了自動(dòng)化的故障恢復(fù)。
(2)哨兵缺陷
寫操作無法負(fù)載均衡;
存儲(chǔ)能力受到單機(jī)的限制;
哨兵無法對(duì)從節(jié)點(diǎn)進(jìn)行自動(dòng)故障轉(zhuǎn)移,在讀寫分離場(chǎng)景下,從節(jié)點(diǎn)故障會(huì)導(dǎo)致讀服務(wù)不可用,需要對(duì)從節(jié)點(diǎn)做額外的監(jiān)控、切換操作。
5.3 集群
(1)作用
通過集群,Redis解決了寫操作無法負(fù)載均衡,以及存儲(chǔ)能力受到單機(jī)限制的問題,實(shí)現(xiàn)了較為完善的高可用方案。
二、Redis 主從復(fù)制
1.主從復(fù)制的概念
主從復(fù)制,是指將一臺(tái)Redis服務(wù)器的數(shù)據(jù),復(fù)制到其他的Redis服務(wù)器。
前者稱為主節(jié)點(diǎn)(Master),后者稱為從節(jié)點(diǎn)(Slave);數(shù)據(jù)的復(fù)制是單向的,只能由主節(jié)點(diǎn)到從節(jié)點(diǎn)。
默認(rèn)情況下,每臺(tái)Redis服務(wù)器都是主節(jié)點(diǎn);且一個(gè)主節(jié)點(diǎn)可以有多個(gè)從節(jié)點(diǎn)(或沒有從節(jié)點(diǎn)),但一個(gè)從節(jié)點(diǎn)只能有一個(gè)主節(jié)點(diǎn)。
2.主從復(fù)制的作用
(1)數(shù)據(jù)冗余:主從復(fù)制實(shí)現(xiàn)了數(shù)據(jù)的熱備份,是持久化之外的一種數(shù)據(jù)冗余方式。
(2)故障恢復(fù):當(dāng)主節(jié)點(diǎn)出現(xiàn)問題時(shí),可以由從節(jié)點(diǎn)提供服務(wù),實(shí)現(xiàn)快速的故障恢復(fù);實(shí)際上是一種服務(wù)的冗余。
(3)負(fù)載均衡:在主從復(fù)制的基礎(chǔ)上,配合讀寫分離,可以由主節(jié)點(diǎn)提供寫服務(wù),由從節(jié)點(diǎn)提供讀服務(wù)(即寫Redis數(shù)據(jù)時(shí)應(yīng)用連接主節(jié)點(diǎn),讀Redis數(shù)據(jù)時(shí)應(yīng)用連接從節(jié)點(diǎn)),分擔(dān)服務(wù)器負(fù)載;尤其是在寫少讀多的場(chǎng)景下,通過多個(gè)從節(jié)點(diǎn)分擔(dān)讀負(fù)載,可以大大提高Redis服務(wù)器的并發(fā)量。
(4)高可用基石:除了上述作用以外,主從復(fù)制還是哨兵和集群能夠?qū)嵤┑幕A(chǔ),因此說主從復(fù)制是Redis高可用的基礎(chǔ)。
3.主從復(fù)制流程
(1)若啟動(dòng)一個(gè)Slave機(jī)器進(jìn)程,則它會(huì)向Master機(jī)器發(fā)送一個(gè)“sync command”命令,請(qǐng)求同步連接。
(2)無論是第一次連接還是重新連接,Master機(jī)器都會(huì)啟動(dòng)一個(gè)后臺(tái)進(jìn)程,將數(shù)據(jù)快照保存到數(shù)據(jù)文件中(執(zhí)行rdb操作),同時(shí)Master還會(huì)記錄修改數(shù)據(jù)的所有命令并緩存在數(shù)據(jù)文件中。
(3)后臺(tái)進(jìn)程完成緩存操作之后,Master機(jī)器就會(huì)向Slave機(jī)器發(fā)送數(shù)據(jù)文件,Slave端機(jī)器將數(shù)據(jù)文件保存到硬盤上,然后將其加載到內(nèi)存中,接著Master機(jī)器就會(huì)將修改數(shù)據(jù)的所有操作一并發(fā)送給Slave端機(jī)器。若Slave出現(xiàn)故障導(dǎo)致宕機(jī),則恢復(fù)正常后會(huì)自動(dòng)重新連接。
(4)Master機(jī)器收到Slave端機(jī)器的連接后,將其完整的數(shù)據(jù)文件發(fā)送給Slave端機(jī)器,如果Mater同時(shí)收到多個(gè)Slave發(fā)來的同步請(qǐng)求,則Master會(huì)在后臺(tái)啟動(dòng)一個(gè)進(jìn)程以保存數(shù)據(jù)文件,然后將其發(fā)送給所有的Slave端機(jī)器,確保所有的Slave端機(jī)器都正常。
4.搭建Redis 主從復(fù)制
Master節(jié)點(diǎn): 192.168.245.112
Slave1節(jié)點(diǎn): 192.168.245.113
Slave2節(jié)點(diǎn): 192.168.245.114
systemctl stop firewalld
setenforce 0
4.1 安裝 Redis
#安裝需要的編譯和構(gòu)建 C/C++ 程序所需的基本工具。
yum install -y gcc gcc-c++ make
#導(dǎo)入安裝包解壓安裝
tar zxvf redis-5.0.7.tar.gz -C /opt/
方法二:#在線下載redis安裝包
wget -p /opt http://download.redis.io/releases/redis-5.0.9.tar.gz
cd /opt/redis-5.0.7/
make
make PREFIX=/usr/local/redis install
cd /opt/redis-5.0.7/utils
./install_server.sh
......
Please select the redis executable path [/usr/local/bin/redis-server] /usr/local/redis/bin/redis-server
ln -s /usr/local/redis/bin/* /usr/local/bin/
4.2 修改 Redis 配置文件(Master節(jié)點(diǎn)操作)
#實(shí)際環(huán)境中是這個(gè)配置文件名redis.conf
vim /etc/redis/6379.conf
bind 0.0.0.0 #70行,修改監(jiān)聽地址為0.0.0.0
daemonize yes #137行,開啟守護(hù)進(jìn)程
logfile /var/log/redis_6379.log #172行,指定日志文件目錄
dir /var/lib/redis/6379 #264行,指定工作目錄
appendonly yes #700行,開啟AOF持久化功能
/etc/init.d/redis_6379 restart
4.3 修改 Redis 配置文件(Slave1、2節(jié)點(diǎn)操作)
vim /etc/redis/6379.conf
bind 0.0.0.0 #70行,修改監(jiān)聽地址為0.0.0.0
daemonize yes #137行,開啟守護(hù)進(jìn)程
logfile /var/log/redis_6379.log #172行,指定日志文件目錄
dir /var/lib/redis/6379 #264行,指定工作目錄 #288行,指定要同步的Master節(jié)點(diǎn)IP和端口
replicaof 192.168.245.112 6379
appendonly yes #700行,開啟AOF持久化功能
/etc/init.d/redis_6379 restart
4.4 驗(yàn)證主從
#在Master節(jié)點(diǎn)上看日志:
tail -f /var/log/redis_6379.log
在Master節(jié)點(diǎn)上驗(yàn)證從節(jié)點(diǎn):
redis-cli info replication
三、Redis 哨兵模式
1.哨兵模式的出現(xiàn)
當(dāng)服務(wù)器宕機(jī)后,需要手動(dòng)一臺(tái)從機(jī)切換為主機(jī),這需要人工干預(yù),不僅費(fèi)時(shí)費(fèi)力而且還會(huì)造成一段時(shí)間內(nèi)服務(wù)不可用。為了解決主從復(fù)制的缺點(diǎn),就有了哨兵機(jī)制。
2.哨兵的核心功能
在主從復(fù)制的基礎(chǔ)上,哨兵引入了主節(jié)點(diǎn)的自動(dòng)故障轉(zhuǎn)移。
3.哨兵模式原理
哨兵(sentinel):是一個(gè)分布式系統(tǒng),用于對(duì)主從結(jié)構(gòu)中的每臺(tái)服務(wù)器進(jìn)行監(jiān)控,當(dāng)出現(xiàn)故障時(shí)通過投票機(jī)制選擇新的 Master并將所有slave連接到新的 Master。所以整個(gè)運(yùn)行哨兵的集群的數(shù)量不得少于3個(gè)節(jié)點(diǎn)。
4.哨兵模式的作用
(1)監(jiān)控:哨兵會(huì)不斷地檢查主節(jié)點(diǎn)和從節(jié)點(diǎn)是否運(yùn)作正常。
(2)自動(dòng)故障轉(zhuǎn)移:當(dāng)主節(jié)點(diǎn)不能正常工作時(shí),哨兵會(huì)開始自動(dòng)故障轉(zhuǎn)移操作,它會(huì)將失效主節(jié)點(diǎn)的其中一個(gè)從節(jié)點(diǎn)升級(jí)為新的主節(jié)點(diǎn),并讓其它從節(jié)點(diǎn)改為復(fù)制新的主節(jié)點(diǎn)。
(3)通知(提醒):哨兵可以將故障轉(zhuǎn)移的結(jié)果發(fā)送給客戶端。
5.哨兵結(jié)構(gòu)
由兩部分組成,哨兵節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn):
(1)哨兵節(jié)點(diǎn):哨兵系統(tǒng)由一個(gè)或多個(gè)哨兵節(jié)點(diǎn)組成,哨兵節(jié)點(diǎn)是特殊的redis節(jié)點(diǎn),不存儲(chǔ)數(shù)據(jù)。
(2)數(shù)據(jù)節(jié)點(diǎn):主節(jié)點(diǎn)和從節(jié)點(diǎn)都是數(shù)據(jù)節(jié)點(diǎn)。
6.故障轉(zhuǎn)移機(jī)制
(1)由哨兵節(jié)點(diǎn)定期監(jiān)控發(fā)現(xiàn)主節(jié)點(diǎn)是否出現(xiàn)了故障
每個(gè)哨兵節(jié)點(diǎn)每隔1秒會(huì)向主節(jié)點(diǎn)、從節(jié)點(diǎn)及其它哨兵節(jié)點(diǎn)發(fā)送一次ping命令做一次心跳檢測(cè)。如果主節(jié)點(diǎn)在一定時(shí)間范圍內(nèi)不回復(fù)或者是回復(fù)一個(gè)錯(cuò)誤消息,那么這個(gè)哨兵就會(huì)認(rèn)為這個(gè)主節(jié)點(diǎn)主觀下線了(單方面的)。當(dāng)超過半數(shù)哨兵節(jié)點(diǎn)認(rèn)為該主節(jié)點(diǎn)主觀下線了,這樣就客觀下線了。
(2)當(dāng)主節(jié)點(diǎn)出現(xiàn)故障,此時(shí)哨兵節(jié)點(diǎn)會(huì)通過Raft算法(選舉算法)實(shí)現(xiàn)選舉機(jī)制共同選舉出一個(gè)哨兵節(jié)點(diǎn)為leader,來負(fù)責(zé)處理主節(jié)點(diǎn)的故障轉(zhuǎn)移和通知。所以整個(gè)運(yùn)行哨兵的集群的數(shù)量不得少于3個(gè)節(jié)點(diǎn)。
(3)由leader哨兵節(jié)點(diǎn)執(zhí)行故障轉(zhuǎn)移,過程如下:
●將某一個(gè)從節(jié)點(diǎn)升級(jí)為新的主節(jié)點(diǎn),讓其它從節(jié)點(diǎn)指向新的主節(jié)點(diǎn);
●若原主節(jié)點(diǎn)恢復(fù)也變成從節(jié)點(diǎn),并指向新的主節(jié)點(diǎn);
●通知客戶端主節(jié)點(diǎn)已經(jīng)更換。
注:客觀下線是主節(jié)點(diǎn)才有的概念;如果從節(jié)點(diǎn)和哨兵節(jié)點(diǎn)發(fā)生故障,被哨兵主觀下線后,不會(huì)再有后續(xù)的客觀下線和故障轉(zhuǎn)移操作。
7.主節(jié)點(diǎn)的選舉
(1)過濾掉不健康的(已下線的),沒有回復(fù)哨兵 ping 響應(yīng)的從節(jié)點(diǎn)。
(2)選擇配置文件中從節(jié)點(diǎn)優(yōu)先級(jí)配置最高的。(replica-priority,默認(rèn)值為100)
(3)選擇復(fù)制偏移量最大,也就是復(fù)制最完整的從節(jié)點(diǎn)。
哨兵的啟動(dòng)依賴于主從模式,所以須把主從模式安裝好的情況下再去做哨兵模式
8.搭建Redis 哨兵模式
Master節(jié)點(diǎn): 192.168.245.112
Slave1節(jié)點(diǎn): 192.168.245.113
Slave2節(jié)點(diǎn): 192.168.245.114
systemctl stop firewalld
setenforce 0
8.1修改 Redis 哨兵模式的配置文件(所有節(jié)點(diǎn)操作)
vim /opt/redis-5.0.7/sentinel.conf
protected-mode no #17行,關(guān)閉保護(hù)模式
port 26379 #21行,Redis哨兵默認(rèn)的監(jiān)聽端口
daemonize yes #26行,指定sentinel為后臺(tái)啟動(dòng)
logfile "/var/log/sentinel.log" #36行,指定日志存放路徑
dir "/var/lib/redis/6379" #65行,指定數(shù)據(jù)庫(kù)存放路徑
sentinel monitor mymaster 192.168.245.112 6379 2 #84行,修改 指定該哨兵節(jié)點(diǎn)監(jiān)控192.168.198.13:6379這個(gè)主節(jié)點(diǎn),該主節(jié)點(diǎn)的名稱是mymaster,最后的2的含義與主節(jié)點(diǎn)的故障判定有關(guān):至少需要2個(gè)哨兵節(jié)點(diǎn)同意,才能判定主節(jié)點(diǎn)故障并進(jìn)行故障轉(zhuǎn)移
sentinel down-after-milliseconds mymaster 30000 #113行,判定服務(wù)器down掉的時(shí)間周期,默認(rèn)30000毫秒(30秒)
sentinel failover-timeout mymaster 180000 #146行,故障節(jié)點(diǎn)的最大超時(shí)時(shí)間為180000(180秒)
8.2啟動(dòng)哨兵模式
先啟master,再啟slave
cd /opt/redis-5.0.7/
redis-sentinel sentinel.conf &
8.3 查看哨兵信息
8.4 故障模擬
#查看redis-server進(jìn)程號(hào)
[root@master redis-5.0.7]# ps -ef | grep redis
root 58849 1 0 17:23 ? 00:00:01 /usr/local/redis/bin/redis-server 0.0.0.0:6379
root 59027 1 0 17:40 ? 00:00:00 redis-sentinel *:26379 [sentinel]
root 59043 15925 0 17:42 pts/2 00:00:00 grep --color=auto redis
#殺死 Master 節(jié)點(diǎn)上redis-server的進(jìn)程號(hào)
kill -9 57031 #Master節(jié)點(diǎn)上redis-server的進(jìn)程號(hào)
四、 Redis 群集模式
1.群集模式概念
集群,即Redis Cluster,是Redis 3.0開始引入的分布式存儲(chǔ)方案。
集群由多個(gè)節(jié)點(diǎn)(Node)組成,Redis的數(shù)據(jù)分布在這些節(jié)點(diǎn)中。集群中的節(jié)點(diǎn)分為主節(jié)點(diǎn)和從節(jié)點(diǎn):只有主節(jié)點(diǎn)負(fù)責(zé)讀寫請(qǐng)求和集群信息的維護(hù);從節(jié)點(diǎn)只進(jìn)行主節(jié)點(diǎn)數(shù)據(jù)和狀態(tài)信息的復(fù)制。
2.集群的作用
(1)數(shù)據(jù)分區(qū):數(shù)據(jù)分區(qū)(或稱數(shù)據(jù)分片)是集群最核心的功能。
集群將數(shù)據(jù)分散到多個(gè)節(jié)點(diǎn),一方面突破了Redis單機(jī)內(nèi)存大小的限制,存儲(chǔ)容量大大增加;另一方面每個(gè)主節(jié)點(diǎn)都可以對(duì)外提供讀服務(wù)和寫服務(wù),大大提高了集群的響應(yīng)能力。
Redis單機(jī)內(nèi)存大小受限問題,在介紹持久化和主從復(fù)制時(shí)都有提及;例如,如果單機(jī)內(nèi)存太大,bgsave和bgrewriteaof的fork操作可能導(dǎo)致主進(jìn)程阻塞,主從環(huán)境下主機(jī)切換時(shí)可能導(dǎo)致從節(jié)點(diǎn)長(zhǎng)時(shí)間無法提供服務(wù),全量復(fù)制階段主節(jié)點(diǎn)的復(fù)制緩沖區(qū)可能溢出。
(2)高可用:集群支持主從復(fù)制和主節(jié)點(diǎn)的自動(dòng)故障轉(zhuǎn)移(與哨兵類似);當(dāng)任一節(jié)點(diǎn)發(fā)生故障時(shí),集群仍然可以對(duì)外提供服務(wù)。
3.Redis集群的數(shù)據(jù)分片
Redis集群引入了哈希槽的概念
Redis集群有16384個(gè)哈希槽(編號(hào)0-16383)
集群的每個(gè)節(jié)點(diǎn)負(fù)責(zé)一部分哈希槽
每個(gè)Key通過CRC16校驗(yàn)后對(duì)16384取余來決定放置哪個(gè)哈希槽,通過這個(gè)值,去找到對(duì)應(yīng)的插槽所對(duì)應(yīng)的節(jié)點(diǎn),然后直接自動(dòng)跳轉(zhuǎn)到這個(gè)對(duì)應(yīng)的節(jié)點(diǎn)上進(jìn)行存取操作
3.1 以3個(gè)節(jié)點(diǎn)組成的集群為例
節(jié)點(diǎn)A包含0到5460號(hào)哈希槽
節(jié)點(diǎn)B包含5461到10922號(hào)哈希槽
節(jié)點(diǎn)C包含10923到16383號(hào)哈希槽
4.Redis集群的主從復(fù)制模型
集群中具有A、B、C三個(gè)節(jié)點(diǎn),如果節(jié)點(diǎn)B失敗了,整個(gè)集群就會(huì)因缺少5461-10922這個(gè)范圍的槽而不可以用。
為每個(gè)節(jié)點(diǎn)添加一個(gè)從節(jié)點(diǎn)A1、B1、C1整個(gè)集群便有三個(gè)Master節(jié)點(diǎn)和三個(gè)slave節(jié)點(diǎn)組成,在節(jié)點(diǎn)B失敗后,集群選舉B1位為的主節(jié)點(diǎn)繼續(xù)服務(wù)。當(dāng)B和B1都失敗后,集群將不可用。
5.搭建Redis 群集模式
5.1 搭建環(huán)境
redis的集群一般需要6個(gè)節(jié)點(diǎn),3主3從。方便起見,這里所有節(jié)點(diǎn)在同一臺(tái)服務(wù)器上模擬:
以端口號(hào)進(jìn)行區(qū)分:3個(gè)主節(jié)點(diǎn)端口號(hào):6001/6002/6003,對(duì)應(yīng)的從節(jié)點(diǎn)端口號(hào):6004/6005/6006。
cd /etc/redis/
mkdir -p redis-cluster/redis600{1..6}
for i in {1..6}
do
cp /opt/redis-5.0.7/redis.conf /etc/redis/redis-cluster/redis600$i
cp /opt/redis-5.0.7/src/redis-cli /opt/redis-5.0.7/src/redis-server /etc/redis/redis-cluster/redis600$i
done
5.2 開啟群集功能
#其他5個(gè)文件夾的配置文件以此類推修改,注意6個(gè)端口都要不一樣。
cd /etc/redis/redis-cluster/redis6001
vim redis.conf
#bind 127.0.0.1 #69行,注釋掉bind 項(xiàng),默認(rèn)監(jiān)聽所有網(wǎng)卡
protected-mode no #88行,修改,關(guān)閉保護(hù)模式
port 6001 #92行,修改,redis監(jiān)聽端口,
daemonize yes #136行,開啟守護(hù)進(jìn)程,以獨(dú)立進(jìn)程啟動(dòng)
cluster-enabled yes #832行,取消注釋,開啟群集功能
cluster-config-file nodes-6001.conf #840行,取消注釋,群集名稱文件設(shè)置
cluster-node-timeout 15000 #846行,取消注釋群集超時(shí)時(shí)間設(shè)置
appendonly yes #699行,修改,開啟AOF持久化
5.3 啟動(dòng)redis節(jié)點(diǎn)
#分別進(jìn)入那六個(gè)文件夾,執(zhí)行命令:redis-server redis.conf ,來啟動(dòng)redis節(jié)點(diǎn)
cd /etc/redis/redis-cluster/redis6001
redis-server redis.conf
for d in {1..6}
do
cd /etc/redis/redis-cluster/redis600$d
redis-server redis.conf
done
ps -ef | grep redis
5.4 啟動(dòng)集群
redis-cli --cluster create 127.0.0.1:6001 127.0.0.1:6002 127.0.0.1:6003 127.0.0.1:6004 127.0.0.1:6005 127.0.0.1:6006 --cluster-replicas 1
#六個(gè)實(shí)例分為三組,每組一主一從,前面的做主節(jié)點(diǎn),后面的做從節(jié)點(diǎn)。下面交互的時(shí)候 需要輸入 yes 才可以創(chuàng)建。
--replicas 1 表示每個(gè)主節(jié)點(diǎn)有1個(gè)從節(jié)點(diǎn)。
5.5 測(cè)試群集
#查看群集
redis-cli -p 6001 -c #加-c參數(shù),節(jié)點(diǎn)之間就可以互相跳轉(zhuǎn)
127.0.0.1:6001> cluster slots #查看節(jié)點(diǎn)的哈希槽編號(hào)范圍
1) 1) (integer) 109232) (integer) 16383 #哈希槽編號(hào)范圍3) 1) "127.0.0.1"2) (integer) 6003 #主節(jié)點(diǎn)IP和端口號(hào)3) "f516734dc80098e6f7fcdc0dc4c180e881e18b57"4) 1) "127.0.0.1"2) (integer) 6005 #從節(jié)點(diǎn)IP和端口號(hào)3) "d8f64cf51e2f922866de49f3d5d8e732ba5df6f3"
2) 1) (integer) 02) (integer) 54603) 1) "127.0.0.1"2) (integer) 60013) "76e9f1954003563f2b2c53fa16ddd4c1f353704c"4) 1) "127.0.0.1"2) (integer) 60063) "fbf75bf25f307de353aa661d7075b76adb798a70"
3) 1) (integer) 54612) (integer) 109223) 1) "127.0.0.1"2) (integer) 60023) "60ffb411297c72a8b31d09b02dadb63f1b72dd90"4) 1) "127.0.0.1"2) (integer) 60043) "014ae72a43bde5cb012763e02430e4e4c328f942"
#登入測(cè)試
127.0.0.1:6001> set name zhangsan
OK
#查看name鍵的槽編號(hào)
127.0.0.1:6001> cluster keyslot name
(integer) 5798
[root@master redis6006]# redis-cli -p 6004 -c
127.0.0.1:6004> keys * #對(duì)應(yīng)的slave節(jié)點(diǎn)也有這條數(shù)據(jù),但是別的節(jié)點(diǎn)沒有
1) "name"