java Java高并發(fā)下緩存問(wèn)題的現(xiàn)象及本質(zhì)原因是什么?
Java高并發(fā)下緩存問(wèn)題的現(xiàn)象及本質(zhì)原因是什么?Cache breakdownCache breakdown表示緩存中沒(méi)有用戶(hù)請(qǐng)求的數(shù)據(jù),但數(shù)據(jù)庫(kù)中有用戶(hù)請(qǐng)求的數(shù)據(jù)。此時(shí),如果并發(fā)用戶(hù)多,無(wú)法通過(guò)緩存
Java高并發(fā)下緩存問(wèn)題的現(xiàn)象及本質(zhì)原因是什么?
Cache breakdown
Cache breakdown表示緩存中沒(méi)有用戶(hù)請(qǐng)求的數(shù)據(jù),但數(shù)據(jù)庫(kù)中有用戶(hù)請(qǐng)求的數(shù)據(jù)。此時(shí),如果并發(fā)用戶(hù)多,無(wú)法通過(guò)緩存獲取數(shù)據(jù),只能從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù),導(dǎo)致數(shù)據(jù)庫(kù)壓力瞬間增大,系統(tǒng)訪(fǎng)問(wèn)速度變慢。
Cache avalanche
Cache avalanche是指大量的緩存數(shù)據(jù)同時(shí)過(guò)期,當(dāng)有大量的訪(fǎng)問(wèn)時(shí),會(huì)導(dǎo)致數(shù)據(jù)庫(kù)壓力的增加和停機(jī)時(shí)間的增加。
cache avalanche和cache breakdown的區(qū)別是cache avalanche是指大量數(shù)據(jù)的過(guò)期,cache breakdown是指單個(gè)cache的過(guò)期
根本原因是系統(tǒng)在設(shè)計(jì)時(shí)沒(méi)有設(shè)計(jì)合理的cache系統(tǒng)
對(duì)于熱數(shù)據(jù),可以考慮設(shè)置為永不過(guò)期,手動(dòng)處理熱數(shù)據(jù)
對(duì)于緩存數(shù)據(jù),設(shè)置過(guò)期時(shí)間是為了隨機(jī)避免大量緩存數(shù)據(jù)同時(shí)失效
考慮分布式配置緩存
不要小看自己,不要自大。我做軟件已經(jīng)20多年了。編程不僅是關(guān)于使用什么語(yǔ)言,而且是關(guān)于思考。編程語(yǔ)言只是一種工具。如果你熟悉一個(gè)工具,那就沒(méi)什么值得驕傲的了,除非你想把編程和詩(shī)人比較一下。一個(gè)軟件要實(shí)現(xiàn)哪些功能,這些功能用戶(hù)如何使用才能酷、易用、穩(wěn)定如新是最重要的。否則,就是半衰期,在這個(gè)領(lǐng)域沒(méi)有太大前途