国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

電子商務(wù)網(wǎng)站規(guī)劃的原則是什么seo技術(shù)博客

電子商務(wù)網(wǎng)站規(guī)劃的原則是什么,seo技術(shù)博客,個(gè)人做影視網(wǎng)站版權(quán)問題,趙縣網(wǎng)站建設(shè)公司Redis之主從復(fù)制,哨兵模式,集群 1、主從復(fù)制1.1主從復(fù)制概述1.2Redis主從復(fù)制作用1.3Redis主從復(fù)制流程1.4部署Redis 主從復(fù)制 2、哨兵模式2.1哨兵模式原理2.2哨兵模式的作用2.3哨兵模式的結(jié)構(gòu)2.4故障轉(zhuǎn)移機(jī)制2.5搭建Redis 哨兵模式 3、Redis集群模式3.1…

Redis之主從復(fù)制,哨兵模式,集群

  • 1、主從復(fù)制
    • 1.1主從復(fù)制概述
    • 1.2Redis主從復(fù)制作用
    • 1.3Redis主從復(fù)制流程
    • 1.4部署Redis 主從復(fù)制
  • 2、哨兵模式
    • 2.1哨兵模式原理
    • 2.2哨兵模式的作用
    • 2.3哨兵模式的結(jié)構(gòu)
    • 2.4故障轉(zhuǎn)移機(jī)制
    • 2.5搭建Redis 哨兵模式
  • 3、Redis集群模式
    • 3.1集群的作用
    • 3.2集群模式的數(shù)據(jù)分片
    • 3.3集群模式的主從復(fù)制模型
    • 3.4Redis 集群部署
      • 3.4.1環(huán)境準(zhǔn)備
      • 3.4.2開啟部署
      • 3.4.3啟動(dòng)服務(wù)

1、主從復(fù)制

1.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)。

1.2Redis主從復(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ǔ),因此說(shuō)主從復(fù)制是Redis高可用的基礎(chǔ)。

1.3Redis主從復(fù)制流程

1、若啟動(dòng)一個(gè)Slave機(jī)器進(jìn)程,則它會(huì)向Master機(jī)器發(fā)送一個(gè)“sync command" 命令,請(qǐng)求同步連接。
2、無(wú)論是第一次連接還是重新連接,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ā)來(lái)的同步請(qǐng)求,則 Master 會(huì)在后臺(tái)啟動(dòng)一個(gè)進(jìn)程以保存數(shù)據(jù)文件,然后將其發(fā)送給所有的 Slave 端機(jī)器,確保所有的 Slave 端機(jī)器都正常。

1.4部署Redis 主從復(fù)制

環(huán)境準(zhǔn)備:

Master節(jié)點(diǎn):192.168.190.130
Slave1節(jié)點(diǎn):192.168.190.140
Slave2節(jié)點(diǎn):192.168.190.170

//三臺(tái)主機(jī)都關(guān)閉防火墻和SELINUX
systemctl stop firewalld
systemctl disable firewalld
setenforce 0//修改內(nèi)核參數(shù)
vim /etc/sysctl.conf
vm.overcommit_memory = 1
net.core.somaxconn = 2048

修改Master節(jié)點(diǎn)配置文件(192.168.190.130 )

vim /usr/local/redis/conf/redis.conf
bind 0.0.0.0			//87行,修改監(jiān)聽地址為0.0.0.0
protected-mode no		//111行,將本機(jī)訪問保護(hù)模式設(shè)置no
port 6379				//138行,Redis默認(rèn)的監(jiān)聽6379端口
daemonize yes			//309行,設(shè)置為守護(hù)進(jìn)程,后臺(tái)啟動(dòng)
pidfile /usr/local/redis/log/redis_6379.pid	
//341行,指定 PID 文件
logfile "/usr/local/redis/log/redis_6379.log"
//354行,指定日志文件
dir /usr/local/redis/data	//504行,指定持久化文件所在目錄
#requirepass abc123			//1037行,可選,設(shè)置redis密碼
appendonly yes				//1380行,開啟AOF

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

systemctl restart redis-server.service

在這里插入圖片描述

修改Slave1節(jié)點(diǎn)Redis 配置文件

vim /usr/local/redis/conf/redis.conf
bind 0.0.0.0			//87行,修改監(jiān)聽地址為0.0.0.0
protected-mode no	    //111行,將本機(jī)訪問保護(hù)模式設(shè)置no
port 6379				//138行,Redis默認(rèn)的監(jiān)聽6379端口
daemonize yes			//309行,設(shè)置為守護(hù)進(jìn)程,后臺(tái)啟動(dòng)
pidfile /usr/local/redis/log/redis_6379.pid	
//341行,指定 PID 文件
logfile "/usr/local/redis/log/redis_6379.log"	
//354行,指定日志文件
dir /usr/local/redis/data	//504行,指定持久化文件所在目錄
#requirepass abc123			//1037行,可選,設(shè)置redis密碼
appendonly yes				//1380行,開啟AOF
replicaof 192.168.190.130 6379
#528行,指定要同步的Master節(jié)點(diǎn)IP和端口
#masterauth abc123			
//535行,可選,指定Master節(jié)點(diǎn)的密碼,僅在Master節(jié)點(diǎn)設(shè)置了requirepass

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

systemctl restart redis-server.service
//重啟服務(wù)

在這里插入圖片描述

修改Slave2節(jié)點(diǎn)Redis 配置文件(和Slav1配置一樣)

vim /usr/local/redis/conf/redis.conf
bind 0.0.0.0			//87行,修改監(jiān)聽地址為0.0.0.0
protected-mode no	    //111行,將本機(jī)訪問保護(hù)模式設(shè)置no
port 6379				//138行,Redis默認(rèn)的監(jiān)聽6379端口
daemonize yes			//309行,設(shè)置為守護(hù)進(jìn)程,后臺(tái)啟動(dòng)
pidfile /usr/local/redis/log/redis_6379.pid	
//341行,指定 PID 文件
logfile "/usr/local/redis/log/redis_6379.log"	
//354行,指定日志文件
dir /usr/local/redis/data	//504行,指定持久化文件所在目錄
#requirepass abc123			//1037行,可選,設(shè)置redis密碼
appendonly yes				//1380行,開啟AOF
replicaof 192.168.190.130 6379
#528行,指定要同步的Master節(jié)點(diǎn)IP和端口
#masterauth abc123			
//535行,可選,指定Master節(jié)點(diǎn)的密碼,僅在Master節(jié)點(diǎn)設(shè)置了requirepass

驗(yàn)證主從效果
在Master節(jié)點(diǎn)上驗(yàn)證從節(jié)點(diǎn):

redis-cli -h 192.168.190.130 -p 6379 -a abc123info replication

在這里插入圖片描述
在這里插入圖片描述

2、哨兵模式

哨兵的核心功能:在主從復(fù)制的基礎(chǔ)上,哨兵引入了主節(jié)點(diǎn)的自動(dòng)故障轉(zhuǎn)移。
在這里插入圖片描述

2.1哨兵模式原理

? 哨兵(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)。

2.2哨兵模式的作用

  • 監(jiān)控:哨兵會(huì)不斷地檢查主節(jié)點(diǎn)和從節(jié)點(diǎn)是否運(yùn)作正常。
  • 自動(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)。
  • 通知(提醒):哨兵可以將故障轉(zhuǎn)移的結(jié)果發(fā)送給客戶端。

2.3哨兵模式的結(jié)構(gòu)

哨兵結(jié)構(gòu)由兩部分組成,哨兵節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)

  • 哨兵節(jié)點(diǎn):哨兵系統(tǒng)由一個(gè)或多個(gè)哨兵節(jié)點(diǎn)組成,哨兵節(jié)點(diǎn)是特殊的 redis 節(jié)點(diǎn),不存儲(chǔ)數(shù)據(jù)。
  • 數(shù)據(jù)節(jié)點(diǎn):主節(jié)點(diǎn)和從節(jié)點(diǎn)都是數(shù)據(jù)節(jié)點(diǎn)。

哨兵的啟動(dòng)依賴于主從模式,所以須把主從模式安裝好的情況下再去做哨兵模式,所有節(jié)點(diǎn)上都需要部署哨兵模式,哨兵模式會(huì)監(jiān)控所有的Redis工作節(jié)點(diǎn)是否正常,當(dāng)Master 出現(xiàn)問題的時(shí)候,因?yàn)槠渌?jié)點(diǎn)與主節(jié)點(diǎn)失去聯(lián)系,因此會(huì)投票,投票過半就認(rèn)為這個(gè) Master
的確出現(xiàn)問題,然后會(huì)通知哨兵間,然后從Slaves中選取一個(gè)作為新的 Master。

2.4故障轉(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,來(lái)負(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)移操作。

#主節(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)。

2.5搭建Redis 哨兵模式

搭建環(huán)境

Master節(jié)點(diǎn):192.168.190.130
Slave1節(jié)點(diǎn):192.168.190.140
Slave2節(jié)點(diǎn):192.168.190.170

//關(guān)閉防火墻
systemctl stop firewalld
setenforce 0

接下來(lái)的所有操作皆依賴于上述的主從復(fù)制,我們接著上面的步驟繼續(xù)往下

master節(jié)點(diǎn):192.168.190.130

cp /opt/redis-7.0.9/sentinel.conf /usr/local/redis/conf/

在這里插入圖片描述

chown redis.redis /usr/local/redis/conf/sentinel.conf

在這里插入圖片描述

vim /usr/local/redis/conf/sentinel.conf
protected-mode no		//6行,關(guān)閉保護(hù)模式
port 26379				//10行,Redis哨兵默認(rèn)的監(jiān)聽端口
daemonize yes			//15行,指定sentinel為后臺(tái)啟動(dòng)
pidfile /usr/local/redis/log/redis-sentinel.pid	
//20行,指定 PID 文件
logfile "/usr/local/redis/log/sentinel.log"		
//25行,指定日志存放路徑
dir /usr/local/redis/data			
//54行,指定數(shù)據(jù)庫(kù)存放路徑
sentinel monitor mymaster 192.168.190.130 6379 2	
//73行,修改 指定該哨兵節(jié)點(diǎn)監(jiān)控192.168.190.130: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 auth-pass mymaster abc123		
//76行,可選,指定Master節(jié)點(diǎn)的密碼,僅在Master節(jié)點(diǎn)設(shè)置了requirepass
sentinel down-after-milliseconds mymaster 3000	
//114行,判定服務(wù)器down掉的時(shí)間周期,默認(rèn)30000毫秒(30秒)
sentinel failover-timeout mymaster 180000	
//214行,同一個(gè)sentinel對(duì)同一個(gè)master兩次failover之間的間隔時(shí)間(180秒)

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

systemctl restart redis-server.service

在這里插入圖片描述

Slave1節(jié)點(diǎn):192.168.190.140

cp /opt/redis-7.0.9/sentinel.conf /usr/local/redis/conf/
chown redis.redis /usr/local/redis/conf/sentinel.conf

在這里插入圖片描述

vim /usr/local/redis/conf/sentinel.conf
protected-mode no		//6行,關(guān)閉保護(hù)模式
port 26379				//10行,Redis哨兵默認(rèn)的監(jiān)聽端口
daemonize yes			//15行,指定sentinel為后臺(tái)啟動(dòng)
pidfile /usr/local/redis/log/redis-sentinel.pid	
//20行,指定 PID 文件
logfile "/usr/local/redis/log/sentinel.log"		
//25行,指定日志存放路徑
dir /usr/local/redis/data			
//54行,指定數(shù)據(jù)庫(kù)存放路徑
sentinel monitor mymaster 192.168.190.130 6379 2	
//73行,修改 指定該哨兵節(jié)點(diǎn)監(jiān)控192.168.190.130: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 auth-pass mymaster abc123		
//76行,可選,指定Master節(jié)點(diǎn)的密碼,僅在Master節(jié)點(diǎn)設(shè)置了requirepass
sentinel down-after-milliseconds mymaster 3000	
//114行,判定服務(wù)器down掉的時(shí)間周期,默認(rèn)30000毫秒(30秒)
sentinel failover-timeout mymaster 180000	
//214行,同一個(gè)sentinel對(duì)同一個(gè)master兩次failover之間的間隔時(shí)間(180秒)

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

systemctl restart redis-server.service

在這里插入圖片描述

Slave2節(jié)點(diǎn):192.168.190.170(配置同上)

cp /opt/redis-7.0.9/sentinel.conf /usr/local/redis/conf/
chown redis.redis /usr/local/redis/conf/sentinel.conf
vim /usr/local/redis/conf/sentinel.conf
protected-mode no		//6行,關(guān)閉保護(hù)模式
port 26379				//10行,Redis哨兵默認(rèn)的監(jiān)聽端口
daemonize yes			//15行,指定sentinel為后臺(tái)啟動(dòng)
pidfile /usr/local/redis/log/redis-sentinel.pid	
//20行,指定 PID 文件
logfile "/usr/local/redis/log/sentinel.log"		
//25行,指定日志存放路徑
dir /usr/local/redis/data			
//54行,指定數(shù)據(jù)庫(kù)存放路徑
sentinel monitor mymaster 192.168.190.130 6379 2	
//73行,修改 指定該哨兵節(jié)點(diǎn)監(jiān)控192.168.190.130: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 auth-pass mymaster abc123		
//76行,可選,指定Master節(jié)點(diǎn)的密碼,僅在Master節(jié)點(diǎn)設(shè)置了requirepass
sentinel down-after-milliseconds mymaster 3000	
//114行,判定服務(wù)器down掉的時(shí)間周期,默認(rèn)30000毫秒(30秒)
sentinel failover-timeout mymaster 180000	
//214行,同一個(gè)sentinel對(duì)同一個(gè)master兩次failover之間的間隔時(shí)間(180秒)

在這里插入圖片描述

systemctl restart redis-server.service

在這里插入圖片描述

啟動(dòng)哨兵模式
先啟master,再啟slave

cd /usr/local/redis/conf/
redis-sentinel sentinel.conf &

在這里插入圖片描述

查看哨兵信息

redis-cli -p 26379 info Sentinel

在這里插入圖片描述

故障模擬

#查看redis-server進(jìn)程號(hào):
ps -ef | grep redis
root      57031      1  0 15:20 ?        00:00:07 /usr/local/bin/redis-server 0.0.0.0:6379
root      57742      1  1 16:05 ?        00:00:07 redis-sentinel *:26379 [sentinel]
root      57883  57462  0 16:17 pts/1    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)#驗(yàn)證結(jié)果
tail -f /usr/local/redis/log/sentinel.log

在這里插入圖片描述
在這里插入圖片描述

3、Redis集群模式

  • 集群,即 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ù)制。

3.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ú)法提供服務(wù),全量復(fù)制階段主節(jié)點(diǎn)的復(fù)制緩沖區(qū)可能溢出。

高可用:集群支持主從復(fù)制和主節(jié)點(diǎn)的自動(dòng)故障轉(zhuǎn)移(與哨兵類似) ;當(dāng)任一節(jié)點(diǎn)發(fā)生故障時(shí),集群仍然可以對(duì)外提供服務(wù)。

3.2集群模式的數(shù)據(jù)分片

  • Redis集群引入了哈希槽的概念
  • Redis集群有 16384 個(gè)哈希槽( 編號(hào)0-16383)
  • 集群的每個(gè)節(jié)點(diǎn)負(fù)責(zé)一部分哈希槽
  • 每個(gè)Key 通過 CRC16 校驗(yàn)后對(duì)16384取余來(lái)決定放置哪個(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個(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)哈希槽

3.3集群模式的主從復(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都失敗后,集群將不可用。

3.4Redis 集群部署

3.4.1環(huán)境準(zhǔ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 /usr/local/redis/
mkdir -p redis-cluster/redis600{1..6}for i in {1..6}
do
cp /opt/redis-7.0.13/redis.conf /usr/local/redis/redis-cluster/redis600$i
cp /opt/redis-7.0.13/src/redis-cli /opt/redis-7.0.13/src/redis-server /usr/local/redis/redis-cluster/redis600$i
done

在這里插入圖片描述

3.4.2開啟部署

#開啟群集功能:
#其他5個(gè)文件夾的配置文件以此類推修改,注意6個(gè)端口都要不一樣。
cd /usr/local/redis/redis-cluster/redis6001
vim redis.conf
#bind 127.0.0.1				#87行,注釋掉bind項(xiàng),默認(rèn)監(jiān)聽所有網(wǎng)卡
protected-mode no				#111行,關(guān)閉保護(hù)模式
port 6001					#138行,修改redis監(jiān)聽端口
daemonize yes				#309行,設(shè)置為守護(hù)進(jìn)程,后臺(tái)啟動(dòng)
pidfile /usr/local/redis/log/redis_6001.pid		#341行,指定 PID 文件
logfile "/usr/local/redis/log/redis_6001.log"	#354行,指定日志文件
dir ./					#504行,指定持久化文件所在目錄
appendonly yes				#1379行,開啟AOF
cluster-enabled yes				#1576行,取消注釋,開啟群集功能
cluster-config-file nodes-6001.conf		#1584行,取消注釋,群集名稱文件設(shè)置
cluster-node-timeout 15000			#1590行,取消注釋群集超時(shí)時(shí)間設(shè)置

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

#執(zhí)行5次,將6001的配置文件,分別復(fù)制給2-6

cp redis.conf ../redis6002/

在這里插入圖片描述

#使用sed,可以直接替換端口號(hào),不需要用vim

sed -i 's/6001/6002/' ../redis6002/redis.conf
#以6002為例,其余操作相同

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

啟動(dòng)redis節(jié)點(diǎn)
分別進(jìn)入那六個(gè)文件夾,執(zhí)行命令:redis-server redis.conf,
來(lái)啟動(dòng)redis節(jié)點(diǎn),

cd /usr/local/redis/redis-cluster/redis6001
redis-server redis.conf

也可以執(zhí)行以下腳本

#從 1 到 6 的范圍循環(huán),將 $d 替換成循環(huán)變量的值
#進(jìn)入對(duì)應(yīng)的目錄并啟動(dòng) Redis 服務(wù)器
for d in {1..6}
do
cd /usr/local/redis/redis-cluster/redis600$d
./redis-server redis.conf
done

查看redis是否啟動(dòng)成功

ps -ef | grep redis

在這里插入圖片描述

3.4.3啟動(dòng)服務(wù)

#啟動(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)。

在這里插入圖片描述
在這里插入圖片描述

#測(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) 54612) (integer) 10922									#哈希槽編號(hào)范圍3) 1) "127.0.0.1"2) (integer) 6003									#主節(jié)點(diǎn)IP和端口號(hào)3) "fdca661922216dd69a63a7c9d3c4540cd6baef44"4) 1) "127.0.0.1"2) (integer) 6004									#從節(jié)點(diǎn)IP和端口號(hào)3) "a2c0c32aff0f38980accd2b63d6d952812e44740"
2) 1) (integer) 02) (integer) 54603) 1) "127.0.0.1"2) (integer) 60013) "0e5873747a2e26bdc935bc76c2bafb19d0a54b11"4) 1) "127.0.0.1"2) (integer) 60063) "8842ef5584a85005e135fd0ee59e5a0d67b0cf8e"
3) 1) (integer) 109232) (integer) 163833) 1) "127.0.0.1"2) (integer) 60023) "816ddaa3d1469540b2ffbcaaf9aa867646846b30"4) 1) "127.0.0.1"2) (integer) 60053) "f847077bfe6722466e96178ae8cbb09dc8b4d5eb"

在這里插入圖片描述

127.0.0.1:6001> set name fsj
-> Redirected to slot [5798] located at 127.0.0.1:6003
OK127.0.0.1:6001> cluster keyslot name					#查看name鍵的槽編號(hào)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"

在這里插入圖片描述
在這里插入圖片描述

redis-cli -p 6001 -c cluster nodes
連接到6001節(jié)點(diǎn)并獲取集群中的節(jié)點(diǎn)信息

在這里插入圖片描述

http://aloenet.com.cn/news/31090.html

相關(guān)文章:

  • 全國(guó)網(wǎng)站制作公司石家莊seo外包公司
  • 網(wǎng)站開發(fā)周期石家莊關(guān)鍵詞排名提升
  • 海淀網(wǎng)站建設(shè)公司廣告推廣賺錢
  • 佛山優(yōu)化網(wǎng)站排名收費(fèi)關(guān)鍵詞推廣優(yōu)化外包
  • 騰寧網(wǎng)絡(luò)做網(wǎng)站抖音seo怎么收費(fèi)
  • 學(xué)網(wǎng)絡(luò)推廣哪個(gè)培訓(xùn)機(jī)構(gòu)好windows優(yōu)化大師官方免費(fèi)下載
  • 用asp做網(wǎng)站怎么美觀seo網(wǎng)站關(guān)鍵詞快速排名
  • 國(guó)際交友網(wǎng)站做英文客服seo項(xiàng)目分析
  • 網(wǎng)站建設(shè)如何做報(bào)價(jià)會(huì)計(jì)培訓(xùn)班有用嗎
  • 外貿(mào)網(wǎng)站怎么做網(wǎng)站關(guān)鍵詞推廣
  • 用一段話來(lái)解釋網(wǎng)站建設(shè)常用網(wǎng)站推廣方法及資源
  • 世界上前端做的最好的網(wǎng)站營(yíng)銷模式有幾種
  • 做室內(nèi)設(shè)計(jì)兼職的網(wǎng)站營(yíng)銷渠道的概念
  • 網(wǎng)站免費(fèi)建站276人vs猛龍
  • 做網(wǎng)站 客戶一直要求改杭州網(wǎng)絡(luò)推廣有限公司
  • 租房寧波seo網(wǎng)絡(luò)推廣多少錢
  • 個(gè)人網(wǎng)站建設(shè)方案書 范文百度免費(fèi)推廣網(wǎng)站
  • 做娛樂新聞的網(wǎng)站有哪些市場(chǎng)調(diào)研報(bào)告范文
  • wp怎么做雙語(yǔ)網(wǎng)站百度快速收錄入口
  • 網(wǎng)站空間支持什么程序邯鄲百度推廣公司
  • mvc5 web網(wǎng)站開發(fā)實(shí)戰(zhàn)廣州百度seo優(yōu)化排名
  • 貴金屬網(wǎng)站模板網(wǎng)站收錄提交入口網(wǎng)址
  • dw如何用表格做網(wǎng)站免費(fèi)網(wǎng)頁(yè)制作平臺(tái)
  • 代理服務(wù)器地址怎么找搜狗排名優(yōu)化工具
  • b2c商城網(wǎng)站建設(shè)目的網(wǎng)頁(yè)關(guān)鍵詞優(yōu)化軟件
  • 網(wǎng)站開發(fā) 群百度公司的企業(yè)文化
  • 做網(wǎng)站借用網(wǎng)絡(luò)圖片不違法吧北京seo的排名優(yōu)化
  • 網(wǎng)站開發(fā)工作室中國(guó)站長(zhǎng)之家官網(wǎng)
  • 慈溪哪點(diǎn)有學(xué)做網(wǎng)站的外鏈官網(wǎng)
  • 深圳市住房和建設(shè)局紅色警示青島seo精靈