配置redis主從復(fù)制
使用ping命令檢查是否啟動(dòng)
主節(jié)點(diǎn)查看鏈接信息
開始部署sentinel 節(jié)點(diǎn)
部署sentinel
啟動(dòng)sentinel
演示下故障轉(zhuǎn)移
查看當(dāng)前sentinel監(jiān)控的節(jié)點(diǎn)信息
中斷redis的主節(jié)點(diǎn)
驗(yàn)證redis的主節(jié)點(diǎn)是否改變
至此sentinel介紹就講完了,不足之處歡迎指正。
配置redis主從復(fù)制一個(gè)主節(jié)點(diǎn)(端口6379),兩個(gè)從節(jié)點(diǎn)(端口6380,6381),不會(huì)配置的請(qǐng)看我的上一篇redis主從復(fù)制的文章。
使用ping命令檢查是否啟動(dòng)redis-cli -h 127.0.0.1 -p 6379 ping
如下,返回PONG表示三個(gè)redis服務(wù)都已經(jīng)啟動(dòng)完成
一個(gè)主節(jié)點(diǎn):
兩個(gè)從節(jié)點(diǎn):
查看6379的連接信息命令:info replication可以發(fā)現(xiàn)6379的角色是master,有兩個(gè)從節(jié)點(diǎn),也就是端口為6380,6381的從節(jié)點(diǎn)(redis)
同樣在6380 從節(jié)點(diǎn)中,該節(jié)點(diǎn)的角色是slave(從節(jié)點(diǎn)),與主節(jié)點(diǎn)的連接狀態(tài)為up(master_link_status),通過這個(gè)命令可以方便的查看各個(gè)節(jié)點(diǎn)的連接狀態(tài)等信息。
除了用info replication命令外,如下命令也可以快速查看鏈接信息redis-cli -h 127.0.0.1 -p 6381 info replication看個(gè)人喜好用哪個(gè)命令。
通過sentinel節(jié)點(diǎn)部署,可以使redis主從復(fù)置更加的高可用,那sentinel到底有什么用呢,從字面意思就看出sentinel是“哨兵”的意思,也就是來監(jiān)控redis節(jié)點(diǎn)的,被sentinel監(jiān)控的redis節(jié)點(diǎn)是主節(jié)點(diǎn),sentinel具有故障轉(zhuǎn)移的功能,什么是故障轉(zhuǎn)移呢?當(dāng)被sentinel監(jiān)控的redis節(jié)點(diǎn)被意外中斷后,sentinel會(huì)自動(dòng)的選擇一個(gè)角色為slave節(jié)點(diǎn)的redis為主節(jié)點(diǎn),維護(hù)后續(xù)并保證正確的主從復(fù)制的關(guān)系,而原來的從節(jié)點(diǎn)還是從節(jié)點(diǎn),不過它們的主節(jié)點(diǎn)變成新升級(jí)為主節(jié)點(diǎn)的redis服務(wù)。下面咱們就一步一步開始搭建sentinel。
部署sentinel進(jìn)入安裝redis的目錄下的配置目錄,我的本地是/etc/redis
我這邊就直接使用原本的sentinel.conf配置,來作為第一個(gè)sentinel節(jié)點(diǎn)。我們可以進(jìn)入sentinel.conf配置看下里面到底有啥配置信息:sentinel monitor mymaster 127.0.0.1 6379 2 //監(jiān)控的主節(jié)點(diǎn)IP和端口,其中mymaster是該節(jié)點(diǎn)的別名,2表示判斷主節(jié)點(diǎn)失敗至少需要兩個(gè)節(jié)點(diǎn)同意sentinel down-after-milliseconds mymaster 30000 //通過ping命令,各個(gè)sentinel節(jié)點(diǎn)向redis節(jié)點(diǎn)是否可達(dá),超過30000毫秒,就判定不可達(dá)sentinel failover-timeout mymaster 180000 //故障轉(zhuǎn)移超時(shí)時(shí)間為180000毫秒如果還有其它的配置,可以自己在探索下啟動(dòng)sentinel
啟動(dòng)命令:sudo redis-sentinel sentinel.conf --sentinel
查看sentinel啟動(dòng)情況redis-cli -h 127.0.0.1 -p 26379 INFO Sentinel可以看出與查看redis啟動(dòng)的情況命令類似,截圖中可以看到此時(shí)sentinel監(jiān)控redis節(jié)點(diǎn)是端口為6379的服務(wù),6379有兩個(gè)從節(jié)點(diǎn),狀態(tài)為OK,別名是mymaster
繼續(xù)再配置兩個(gè)sentinel節(jié)點(diǎn),sudo cp sentinel.conf sentinel2.conf sudo cp sentinel.conf sentinel3.conf 修改兩個(gè)配置的端口為26380, 26381,其它配置可以不用修改修改完后,分別啟動(dòng)sudo redis-sentinel sentinel2.conf --sentinelsudo redis-sentinel sentinel3.conf --sentinel
啟動(dòng)后再次查看sentinel.conf的配置,可以發(fā)現(xiàn)配置中多了兩個(gè)從節(jié)點(diǎn)的信息,截圖如下:
查看26379端口的Sentinel節(jié)點(diǎn)監(jiān)控的主節(jié)點(diǎn)信息
查看目前redis的進(jìn)程ps -ef | grep redis
之前我們sentinel監(jiān)控的主節(jié)點(diǎn)是6379這個(gè)端口,這時(shí)候我們kill這個(gè)端口的進(jìn)程,或者使用shutdown命令:redis-cli -h 127.0.0.1 -p 6379 shutdown過了30秒之后查看26379端口的Sentinel節(jié)點(diǎn)監(jiān)控的主節(jié)點(diǎn)信息,發(fā)現(xiàn)主節(jié)點(diǎn)信息變成了6380端口的redis(之前的從節(jié)點(diǎn))
驗(yàn)證6380端口的redis變成主節(jié)點(diǎn),此時(shí)我們?cè)?380 的redis上設(shè)置一個(gè)key值,在6381端口的redis上驗(yàn)證是否能獲取到該key值
此時(shí)發(fā)現(xiàn),6380變成了主節(jié)點(diǎn),6381從節(jié)點(diǎn)沒有變化,還是從節(jié)點(diǎn)。下面我再次啟動(dòng)6379端口的redis
發(fā)現(xiàn)原先的主節(jié)點(diǎn)6379已經(jīng)變成了從節(jié)點(diǎn),而它的主節(jié)點(diǎn)變成了6380。此時(shí)我們?cè)倩剡^頭看下26379的監(jiān)控節(jié)點(diǎn)變化,還是6380端口。
以上就是redis詳解之sentinel介紹的詳細(xì)內(nèi)容,PHP教程
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。
新聞熱點(diǎn)
疑難解答
圖片精選