您好,登錄后才能下訂單哦!
這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)redis中什么是穿透與雪崩,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
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è)資訊頻道。
免責(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)容。