溫馨提示×

溫馨提示×

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

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

redis中什么是穿透與雪崩

發(fā)布時間:2021-07-26 16:49:57 來源:億速云 閱讀:149 作者:Leah 欄目:數(shù)據(jù)庫

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)redis中什么是穿透與雪崩,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

redis穿透與雪崩?

  1.穿透:

  理解:當(dāng)redis作用于數(shù)據(jù)緩存的時候,緩存的數(shù)據(jù)來源于db,而當(dāng)由于key在redis中未獲取到value時,則邏輯代碼會從數(shù)據(jù)庫中獲取value,這種現(xiàn)象叫做緩存穿透。

  若存在大量key穿過緩存,從db獲取value,則會導(dǎo)致數(shù)據(jù)庫壓力劇增,甚至癱瘓。

  方案:a.當(dāng)出現(xiàn)大量無效key時,會從數(shù)據(jù)庫獲取value,使用分布式互斥鎖對loaddb進(jìn)行控制。

  b.對請求進(jìn)行驗(yàn)證,判斷是否是有效的key,比如布隆過濾器。

  c.無論key是否取到值,直接返回null。對不太穩(wěn)定的緩存設(shè)置過期時間,如果緩存過期,異步起一個線程從db中獲取數(shù)據(jù)。

  比較:待補(bǔ)充

  2。雪崩:

  理解:redis服務(wù)器宕機(jī)

  方案:redis集群,主從復(fù)制,哨兵模式,redis-cluster

  比較:

  主從復(fù)制:讀寫分離,一旦主機(jī)宕機(jī),需要手動進(jìn)行從機(jī)升級,并且容易出現(xiàn)短時間無法寫的問題

  哨兵模式:完善讀寫分離的技術(shù),實(shí)現(xiàn)當(dāng)主機(jī)宕機(jī)后,自動進(jìn)行master選舉,但數(shù)據(jù)集中在master中,當(dāng)master壓力過大,很難擴(kuò)容,通過哨兵+主從復(fù)制可以實(shí)現(xiàn)redis的高可用,但

  很難實(shí)現(xiàn)高并發(fā)即分散服務(wù)器壓力,在對并發(fā)量要求不大,推薦使用

  redis-cluster:可實(shí)現(xiàn)高可用,高并發(fā),擴(kuò)容,縮容,maseter選舉,在高并發(fā)情況下,首選cluster搭建redis集群。

  ##redis主從復(fù)制與哨兵模式搭配使用:前者提供高可用,后者提供master選舉

  ##redis-cluster=主從復(fù)制+哨兵模式+高并發(fā)+可擴(kuò)展。

  1.下載redis

  2.安裝gcc執(zhí)行make命令安裝redis

  主從復(fù)制:

  啟動多個redis,slaveofipport設(shè)置master,inforeplication查看redis主從信息

  注意項(xiàng):1.當(dāng)master存在密碼是slave必須配置文件masterauth設(shè)置主機(jī)的密碼,或者使用configsetmasterauth手動設(shè)置密碼,不然即使slaveof執(zhí)

  行成功,master-link-status顯示為down,設(shè)置完masterauth密碼后則顯示up。

  2.當(dāng)主從復(fù)制,master宕機(jī),必須手動切換slave為master不然從機(jī)不會進(jìn)行master選舉,從機(jī)master-link-status變成down,會一直等待master啟動,master-link-

  status恢復(fù)成up

  3.master默認(rèn)可寫可讀,slave默認(rèn)只讀,可以修改slave-read-onlyyes:只讀no:讀寫

  哨兵模式:master宕機(jī)自動選舉master

  注意項(xiàng):master宕機(jī)重啟后會作為slave自動同步到選舉后的master上,大件事master和slave密碼要保持一致,不然選舉后將slave切換成maseter會因此失敗。

  cluster集群:密碼也需要保持一致,而且需要修改/usr/local/share/gems/gems/redis-3.3.3/lib/redis/client.rb

  (https://img2018.cnblogs.com/blog/1909126/201912/1909126-20191229210642240-329425897.png)修改成正確的密碼即可

  cluster:每個key通過CRC16(key)%16384來決定放置哪個槽,共有16384個槽被分配到不同的master中(slave中是沒有分配曹的),從而將key放入對應(yīng)的master中,當(dāng)master

  宕機(jī),其slave會升級成為master,并將原master的曹與數(shù)據(jù)轉(zhuǎn)移到新的master上。

  擴(kuò)容:就是添加新的master-slave讓后將其他master的槽分?jǐn)偨o新家的master即可,槽中的數(shù)據(jù)也會隨之轉(zhuǎn)移。

  縮容:相反。

  命令:查看集群節(jié)點(diǎn)

  clusternodes

  查看key對應(yīng)的slot

  clusterkeyslotkey

  查看slot和節(jié)點(diǎn)的對應(yīng)關(guān)系

  clusterslots

上述就是小編為大家分享的redis中什么是穿透與雪崩了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向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