? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?緩存的特征
高頻訪問朝抖,時(shí)效性小的業(yè)務(wù)
緩存一致性:
緩存穿透:在高并發(fā)場(chǎng)景下邢锯,如果某一個(gè)key被高并發(fā)的訪問沒有被命中,處于對(duì)容錯(cuò)性的考慮,會(huì)嘗試從后端數(shù)據(jù)庫獲取冀自,從而使大量的請(qǐng)求達(dá)到數(shù)據(jù)庫揉稚,該key對(duì)應(yīng)的數(shù)據(jù)的本身為空的情況下,導(dǎo)致了數(shù)據(jù)庫并發(fā)執(zhí)行了許多不必要的查詢操作
避免:1 對(duì)空的對(duì)象也進(jìn)行緩存熬粗,(ex:空集合 緩存空集合 單個(gè)對(duì)象可以通過字段標(biāo)識(shí))適合命中不高搀玖,頻繁更新的數(shù)據(jù)
2 單獨(dú)過濾處理 ,對(duì)所有key對(duì)應(yīng)數(shù)據(jù)為空的key統(tǒng)一存放驻呐,并在請(qǐng)求前做攔截? ?適合命中不高灌诅,不頻繁更新的數(shù)據(jù)
1 緩存抖動(dòng):緩存節(jié)點(diǎn)故障導(dǎo)致,通過一致性hash算法解決
緩存雪崩:由于緩存的原因含末,大量的請(qǐng)求到達(dá)后端數(shù)據(jù)庫猜拾,導(dǎo)致數(shù)據(jù)庫崩潰,整個(gè)系統(tǒng)崩潰發(fā)生災(zāi)難
原因:緩存并發(fā) 緩存穿透? 緩存抖動(dòng) 可能會(huì)被惡意攻擊者利用 某一個(gè)節(jié)點(diǎn)緩存集中失效了(設(shè)置不同的過期時(shí)間佣盒,避免緩存集中失效? 限流 降級(jí)? 熔斷等手段 多級(jí)緩存避免災(zāi)難挎袜,加強(qiáng)壓力測(cè)試)