java緩存技術(shù)有哪些 Java高并發(fā)下緩存問題的現(xiàn)象及本質(zhì)原因是什么?
Java高并發(fā)下緩存問題的現(xiàn)象及本質(zhì)原因是什么?Cache breakdownCache breakdown表示緩存中沒有用戶請(qǐng)求的數(shù)據(jù),但數(shù)據(jù)庫中有用戶請(qǐng)求的數(shù)據(jù)。此時(shí),如果并發(fā)用戶多,無法通過緩存
Java高并發(fā)下緩存問題的現(xiàn)象及本質(zhì)原因是什么?
Cache breakdown
Cache breakdown表示緩存中沒有用戶請(qǐng)求的數(shù)據(jù),但數(shù)據(jù)庫中有用戶請(qǐng)求的數(shù)據(jù)。此時(shí),如果并發(fā)用戶多,無法通過緩存獲取數(shù)據(jù),只能從數(shù)據(jù)庫中獲取數(shù)據(jù),導(dǎo)致數(shù)據(jù)庫壓力瞬間增大,系統(tǒng)訪問速度變慢。
Cache avalanche
Cache avalanche是指大量的緩存數(shù)據(jù)同時(shí)過期,當(dāng)有大量的訪問時(shí),會(huì)導(dǎo)致數(shù)據(jù)庫壓力的增加和停機(jī)時(shí)間的增加。
cache avalanche和cache breakdown的區(qū)別是cache avalanche是指大量數(shù)據(jù)的過期,cache breakdown是指單個(gè)cache的過期
根本原因是系統(tǒng)在設(shè)計(jì)時(shí)沒有設(shè)計(jì)合理的cache系統(tǒng)
對(duì)于熱數(shù)據(jù),可以考慮將其設(shè)置為永不過期,并手動(dòng)處理熱數(shù)據(jù)
對(duì)于緩存數(shù)據(jù),設(shè)置過期時(shí)間是為了避免同時(shí)出現(xiàn)大量緩存數(shù)據(jù)失敗
我們可以考慮分布式配置緩存