溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Redis分布式緩存的作用是什么

發(fā)布時間:2021-06-22 15:46:21 來源:億速云 閱讀:457 作者:chen 欄目:大數(shù)據(jù)

這篇文章主要介紹“Redis分布式緩存的作用是什么”,在日常操作中,相信很多人在Redis分布式緩存的作用是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Redis分布式緩存的作用是什么”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

Redis哨兵(Sentinel)模式

主從切換技術(shù)的方法是:當(dāng)主服務(wù)器宕機(jī)后,需要手動把一臺從服務(wù)器切換為主服務(wù)器,這就需要人工干預(yù),費(fèi)事費(fèi)力,還會造成一段時間內(nèi)服務(wù)不可用。這不是一種推薦的方式,更多時候,我們優(yōu)先考慮哨兵模式。

一、哨兵模式概述

哨兵模式是一種特殊的模式,首先Redis提供了哨兵的命令,哨兵是一個獨(dú)立的進(jìn)程,作為進(jìn)程,它會獨(dú)立運(yùn)行。其原理是哨兵通過發(fā)送命令,等待Redis服務(wù)器響應(yīng),從而監(jiān)控運(yùn)行的多個Redis實(shí)例。 Redis分布式緩存的作用是什么

這里的哨兵有兩個作用

  • 通過發(fā)送命令,讓Redis服務(wù)器返回監(jiān)控其運(yùn)行狀態(tài),包括主服務(wù)器和從服務(wù)器。

  • 當(dāng)哨兵監(jiān)測到master宕機(jī),會自動將slave切換成master,然后通過發(fā)布訂閱模式通知其他的從服務(wù)器,修改配置文件,讓它們切換主機(jī)。

然而一個哨兵進(jìn)程對Redis服務(wù)器進(jìn)行監(jiān)控,可能會出現(xiàn)問題,為此,我們可以使用多個哨兵進(jìn)行監(jiān)控。各個哨兵之間還會進(jìn)行監(jiān)控,這樣就形成了多哨兵模式。

用文字描述一下故障切換(failover)的過程。假設(shè)主服務(wù)器宕機(jī),哨兵1先檢測到這個結(jié)果,系統(tǒng)并不會馬上進(jìn)行failover過程,僅僅是哨兵1主觀的認(rèn)為主服務(wù)器不可用,這個現(xiàn)象成為主觀下線。當(dāng)后面的哨兵也檢測到主服務(wù)器不可用,并且數(shù)量達(dá)到一定值時,那么哨兵之間就會進(jìn)行一次投票,投票的結(jié)果由一個哨兵發(fā)起,進(jìn)行failover操作。切換成功后,就會通過發(fā)布訂閱模式,讓各個哨兵把自己監(jiān)控的從服務(wù)器實(shí)現(xiàn)切換主機(jī),這個過程稱為客觀下線。這樣對于客戶端而言,一切都是透明的。

二、Redis配置哨兵模式

Redis分布式緩存的作用是什么 Redis分布式緩存的作用是什么

三、哨兵模式的其他配置項(xiàng)

Redis分布式緩存的作用是什么

sentinel down-after-milliseconds配置項(xiàng)只是一個哨兵在超過規(guī)定時間依舊沒有得到響應(yīng)后,會自己認(rèn)為主機(jī)不可用。對于其他哨兵而言,并不是這樣認(rèn)為。哨兵會記錄這個消息,當(dāng)擁有認(rèn)為主觀下線的哨兵達(dá)到sentinel monitor所配置的數(shù)量時,就會發(fā)起一次投票,進(jìn)行failover,此時哨兵會重寫Redis的哨兵配置文件,以適應(yīng)新場景的需要。

Redis集群原理

1.1.Redis-cluster架構(gòu)圖

Redis分布式緩存的作用是什么

1、所有的redis節(jié)點(diǎn)彼此互聯(lián)(PING-PONG機(jī)制),內(nèi)部使用二進(jìn)制協(xié)議優(yōu)化傳輸速度和帶寬。

2、節(jié)點(diǎn)的fail是通過集群中超過半數(shù)的節(jié)點(diǎn)檢測失效時才生效。

3、客戶端與redis節(jié)點(diǎn)直連,不需要中間proxy層??蛻舳瞬恍枰B接集群所有節(jié)點(diǎn),連接集群中任何一個可用節(jié)點(diǎn)即可。

4、redis-cluster把所有的物理節(jié)點(diǎn)映射到[0-16383]slot上,cluster 負(fù)責(zé)維護(hù)node<->slot<->value Redis 集群中內(nèi)置了 16384 個哈希槽,當(dāng)需要在 Redis 集群中放置一個 key-value 時,redis 先對 key 使用 crc16 算法算出一個結(jié)果,然后把結(jié)果對 16384 求余數(shù),這樣每個 key 都會對應(yīng)一個編號在 0-16383 之間的哈希槽,redis 會根據(jù)節(jié)點(diǎn)數(shù)量大致均等的將哈希槽映射到不同的節(jié)點(diǎn)。一個節(jié)點(diǎn)對應(yīng)一臺redis服務(wù)器。16384個哈希槽最大可以對應(yīng)16384臺redis服務(wù)器。 Redis分布式緩存的作用是什么

1.2.Redis-cluster投票&容錯

Redis分布式緩存的作用是什么

投票過程是集群中所有master參與,如果半數(shù)以上master節(jié)點(diǎn)與master節(jié)點(diǎn)通信超時(cluster-node-timeout),認(rèn)為當(dāng)前master節(jié)點(diǎn)掛掉。

什么時候整個集群不可用(cluster_state:fail)?

A:如果集群任意master掛掉,且當(dāng)前master沒有slave.集群進(jìn)入fail狀態(tài),也可以理解成集群的slot映射[0-16383]不完整時進(jìn)入fail狀態(tài). ps : redis-3.0.0.rc1加入cluster-require-full-coverage參數(shù),默認(rèn)關(guān)閉,打開集群兼容部分失敗。

B:如果集群超過半數(shù)以上master掛掉,無論是否有slave,集群進(jìn)入fail狀態(tài)。

到此,關(guān)于“Redis分布式緩存的作用是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI