第三階段基礎(chǔ)
時(shí) ?間:2023年6月15日
參加人:全班人員
內(nèi) ?容:
Redis高可用集群
目錄
一、redis主從復(fù)制原理介紹
主從復(fù)制特點(diǎn):
主從復(fù)制實(shí)現(xiàn)原理:
二、主從復(fù)制實(shí)現(xiàn)操作(多機(jī)實(shí)例實(shí)現(xiàn))??
前提配置:
主庫操作:
從庫一操作:
從庫二操作:
主庫變化:
驗(yàn) ?證:
三、redis哨兵操作
主 庫:
從庫一:
從庫二:
驗(yàn)證結(jié)果:
一、redis主從復(fù)制原理介紹
主從模式下,Redis 分為主庫(master)和從庫(slaver)。主庫負(fù)責(zé)讀寫,從庫只負(fù)責(zé)讀。當(dāng)主庫發(fā)生寫事件后會將數(shù)據(jù)同步至從庫。主庫掛了不會重新選舉主庫,需等主庫重啟之后才能繼續(xù)提供寫服務(wù),此間從庫仍可提供讀服務(wù)。
初始化階段:從庫啟動后,向主庫發(fā)送 Sync 命令,主庫收到 Sync 命令后,生成 RDB 快照,并緩存生成快照期間的寫命令,快照生成完后,發(fā)送至從庫。從庫收到后根據(jù)快照和緩存的寫命令初始化數(shù)據(jù)庫。
同步階段:此階段主庫每次收到寫命令都會將寫命令發(fā)送至從庫,從庫執(zhí)行寫命令,保證數(shù)據(jù)一致性。
主從復(fù)制特點(diǎn):
一個master可以有多個slave
一個slave只能有一個master
數(shù)據(jù)流向是單向的,master到slave
主從復(fù)制實(shí)現(xiàn)原理:
1.從庫通過slaveof?192.168.1.107?6379命令連接主庫,并發(fā)送sync給主庫;
2.主庫收到sync,立刻觸發(fā)bgsave,后臺保存RDB,發(fā)送給從庫;
3.從庫接受后會應(yīng)用rdb快照;
4.主庫會陸續(xù)將中間產(chǎn)生的新的操作,保存并發(fā)送給從庫;
5.到此,我們主從復(fù)制就正常工作了;
6.之后,主庫所有新的操作,都會以命令傳播的方式自動發(fā)送給從庫;
7.如果發(fā)生主從斷開,從庫數(shù)據(jù)沒有任何破壞,重新連接后,從庫發(fā)送psync給主庫;
8.主庫會將從庫缺失的部分?jǐn)?shù)據(jù)同步給從庫應(yīng)用,達(dá)到快速恢復(fù)主從的目的。
二、主從復(fù)制實(shí)現(xiàn)操作(多機(jī)實(shí)例實(shí)現(xiàn))??
在此演示的是yum安裝方式,且對redis進(jìn)行無密碼設(shè)置
前提配置:
1、關(guān)閉防火墻
systemctl stop firewalld
iptables -F
setenforce 0
2、yum安裝了redis
3、虛擬機(jī)網(wǎng)絡(luò)模式為橋接模式
ip地址自動獲取
主庫操作:
步驟一:基礎(chǔ)操作
??ip地址為192.168.1.107
安裝了redis
步驟二:配置redis主配置文件/etc/redis.conf
bind 0.0.0.0
daemonize yes
port 6379
pidfile /var/run/redis_6379.pid
步驟三:啟動redis服務(wù)
redis-cli進(jìn)入,查看當(dāng)前主從復(fù)制信息
info replication
從庫一操作:
步驟一:基礎(chǔ)操作
ip地址為192.168.1.108
安裝了redis
步驟二:配置redis主配置文件/etc/redis.conf
bind 0.0.0.0
daemonize yes
port 6379
pidfile /var/run/redis_6379.pid
步驟三:啟動redis服務(wù)
redis-cli -p 6379 進(jìn)入,查看當(dāng)前主從復(fù)制信息
操作slaveof 192.168.1.107 6379請看變化!??!
從庫二操作:
步驟一:基礎(chǔ)操作
ip地址為192.168.1.14
安裝了redis
步驟二:配置redis主配置文件/etc/redis.conf
bind 0.0.0.0
daemonize yes
port 6379
pidfile /var/run/redis_6379.pid
步驟三:啟動redis服務(wù)
redis-cli -p 6379進(jìn)入,查看當(dāng)前主從復(fù)制信息
操作slaveof 192.168.1.107 6379請看變化?。?!
主庫變化:
?
?
驗(yàn) ?證:
主庫操作:有創(chuàng)建功能
set k1 HUYANG
get k1
從庫一:無創(chuàng)建功能
get k1
從庫二:無創(chuàng)建功能
get k1
三、redis哨兵操作
此處演示三臺服務(wù)器都創(chuàng)建哨兵,均監(jiān)視當(dāng)前服務(wù)
步驟一:分別對主庫、從庫一、從庫二的哨兵模式配置文件/etc/redis-sentinel.conf修改
主 庫:
port 26379
daemonize yes
sentinel monitor mymaster 192.168.1.107 6379 2
其他操作默認(rèn)不進(jìn)行修改
從庫一:
port 26379
daemonize yes
sentinel monitor mymaster 192.168.1.107 6379 2
其他操作默認(rèn)不進(jìn)行修改
從庫二:
port 26379
daemonize yes
sentinel monitor mymaster 192.168.1.107 6379 2
其他操作默認(rèn)不進(jìn)行修改
步驟二:分別啟動主庫、從庫一、從庫二的哨兵模式
systemctl start redis-sentinel
或者
systemctl restart redis-sentinel
步驟三:停止主庫的redis服務(wù)查看變化
sysrenctl stop redis
驗(yàn)證結(jié)果:
步驟一:停止主庫的redis服務(wù)查看變化
sysrenctl stop redis
步驟二:查看從庫一的變化
從庫一最終結(jié)果:
從庫二變化:
從庫二最終結(jié)果:
?
總 ?結(jié):
開啟redis哨兵模式之后;
主庫的redis服務(wù)停止;
從庫一:原本是1.107的從庫,模式時(shí)間(30秒)到了之后,復(fù)制信息發(fā)生變化,主從復(fù)制過程停止,哨兵模式隨機(jī)選擇一臺主機(jī)為服務(wù)器,最終選擇了1.108這臺服務(wù)器,也就是原本的從庫一變成了主庫;文章來源:http://www.zghlxwxcb.cn/news/detail-492871.html
從庫二:原本是1.107從庫,模式時(shí)間(30秒)到了之后,復(fù)制信息發(fā)生變化,主從復(fù)制過程停止,待哨兵模式選擇完誰當(dāng)服務(wù)器之后,變成了1.108的從庫。文章來源地址http://www.zghlxwxcb.cn/news/detail-492871.html
到了這里,關(guān)于從小白到大神之路之學(xué)習(xí)運(yùn)維第41天---第三階段---Redis高可用集群(redis 的主從復(fù)制、redis的哨兵模式操作)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!