關(guān)于Redis的主從復(fù)制及哨兵問(wèn)題
服務(wù)器配置
到這里關(guān)于redis的一些基本操作就學(xué)習(xí)完了,接下來(lái)我們就來(lái)看看redis中更加高級(jí)的部分,首先是配置文件中的配置信息。
配置項(xiàng) | 說(shuō)明 |
---|---|
daemonize yes | no |
bind 127.0.0.1 | 綁定主機(jī)地址 |
port 6379 | 設(shè)置服務(wù)器端口號(hào) |
databases 16 | 設(shè)置數(shù)據(jù)庫(kù)數(shù)量 |
loglevel debug | verbose |
logfile 端口號(hào).log | 設(shè)置日志文件名 |
maxclients 0 | 設(shè)置同一時(shí)間最大客戶端連接數(shù),默認(rèn)無(wú)限制,當(dāng)客戶端連接達(dá)到上限時(shí),redis會(huì)關(guān)閉新的連接 |
timeout 300 | 客戶端閑置等待最大時(shí)長(zhǎng),達(dá)到最大值后關(guān)閉連接,如需關(guān)閉該功能, 設(shè)置為0 |
include /path/server-端口號(hào).conf | 導(dǎo)入并加載指定配置文件信息,用于快速創(chuàng)建redis公共配置較多的redis實(shí)例配置文件,便于維護(hù) |
主從復(fù)制
現(xiàn)在我們只是在使用一個(gè)redis,它就會(huì)出現(xiàn)一些問(wèn)題,比如服務(wù)器宕機(jī)后,該服務(wù)器上的redis將無(wú)法提供服務(wù),而此時(shí)應(yīng)用又只有一個(gè)redis服務(wù)支撐,那么我們的業(yè)務(wù)將無(wú)法提供正常的服務(wù),為了保證高可用,我們需要為redis搭建集群。
redis中以master為主機(jī),slave為從機(jī),一個(gè)master可以對(duì)應(yīng)多個(gè)slave,而一個(gè)slave只能對(duì)應(yīng)一個(gè)master。
那么首先我們需要建立slave到master的連接,使master能夠識(shí)別slave,并保存slave的端口號(hào),啟動(dòng)四個(gè)窗口模擬這一過(guò)程:
在6380服務(wù)和6381服務(wù)窗口分別開(kāi)啟6380端口、6381端口的redis服務(wù),然后來(lái)到slave窗口:
redis-cli -p 6381 slaveof 127.0.0.1 6380
這里表示使用6381端口連接6380端口,作為它的從機(jī),此時(shí)我們?cè)賮?lái)到master窗口,連接客戶端:
redis-cli -p 6380 set name zs
會(huì)發(fā)現(xiàn),slave窗口中6381端口的redis也能夠獲取到該數(shù)據(jù),此時(shí)證明主從搭建好了。
我們也可以在啟動(dòng)redis服務(wù)的時(shí)候就進(jìn)行連接:
redis-server redis-6381.conf --slaveof 127.0.0.1 6380
redis推薦使用配置文件的方式搭建主從結(jié)構(gòu),修改redis-6381.conf:
slaveof 127.0.0.1 6380
此時(shí)6381就成了6380的從機(jī)了。
哨兵
在主從的環(huán)境下也可能會(huì)產(chǎn)生問(wèn)題,比如作為主機(jī)的master服務(wù)宕機(jī)了,此時(shí)作為它的從機(jī)都無(wú)法正常工作了,這個(gè)時(shí)候我們需要在slave中選出一個(gè)作為新的master,以支撐主從繼續(xù)提供服務(wù)。
哨兵則是為了解決上述問(wèn)題的,它是一個(gè)分布式的系統(tǒng),用于對(duì)主從結(jié)構(gòu)中的每臺(tái)服務(wù)器進(jìn)行監(jiān)控,當(dāng)出現(xiàn)故障時(shí)通過(guò)投票機(jī)制選擇新的master并將所有的slave連接到新的master。
哨兵的啟動(dòng)方式如下:
redis-sentinel sentinel.conf
哨兵的客戶端鏈接方式:
redis-cli -p 26379
需要注意的是哨兵客戶端不支持?jǐn)?shù)據(jù)操作,它只作監(jiān)控用途。
到此這篇關(guān)于Redis的主從復(fù)制及哨兵的文章就介紹到這了,更多相關(guān)Redis主從復(fù)制內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
redis分布式Jedis類型轉(zhuǎn)換的異常深入研究
這篇文章主要介紹了redis分布式Jedis類型轉(zhuǎn)換的異常深入研究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03redis?zset實(shí)現(xiàn)滑動(dòng)窗口限流的代碼
這篇文章主要介紹了redis?zset實(shí)現(xiàn)滑動(dòng)窗口限流,滑動(dòng)窗口算法思想就是記錄一個(gè)滑動(dòng)的時(shí)間窗口內(nèi)的操作次數(shù),操作次數(shù)超過(guò)閾值則進(jìn)行限流,本文通過(guò)實(shí)例代碼給大家詳細(xì)介紹,需要的朋友參考下吧2022-03-03