0x01緩存基本概念一覽

tags: redis,ehcahe,jcache,memcache

緩存機(jī)制的引入可以提高系統(tǒng)的訪(fǎng)問(wèn)效率。

它的主要實(shí)現(xiàn)思想是:在程序和數(shù)據(jù)源之間引入一個(gè)中間層即Cache,訪(fǎng)問(wèn)cache的時(shí)間成本肯定遠(yuǎn)低于數(shù)據(jù)源。

按照Cache所在可以簡(jiǎn)單分為進(jìn)程外緩存和本地緩存。

對(duì)于單機(jī)推薦使用 ehcahe

對(duì)于分布式 推薦使用 redis 和   MemCached;

  1. SpringBoot支持很多種緩存方式:redis、guava、ehcahe、jcache等等。
  2. Redis && memcache 緩存中間件:屬于獨(dú)立的運(yùn)行程序 可以單機(jī)部署,也可以分布式部署;
  3. ehcache: 是程序的一個(gè)功能模塊。 緩存的訪(fǎng)問(wèn)速度快,但不太適合分布式部署。
  4. 讀寫(xiě)速度,不考慮并發(fā)問(wèn)題,本地緩存是最快的

緩存預(yù)熱

在緩存初始化時(shí),緩存中是沒(méi)有任何緩存數(shù)據(jù)的,需先將數(shù)據(jù)緩存后,緩存服務(wù)才算完全啟動(dòng)。預(yù)熱方式:

  • miss后,實(shí)時(shí)查詢(xún),然后更新緩存數(shù)據(jù);
    1. 缺點(diǎn)1:多個(gè)tomcat實(shí)例同時(shí)查詢(xún)數(shù)據(jù)并跟新緩存,在一段時(shí)間內(nèi)緩存近似于失效;
    2. 缺點(diǎn)2:在高并發(fā)場(chǎng)景下,無(wú)法限制對(duì)數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)速度;
  • 通過(guò)task或接口預(yù)先加載服務(wù),然后開(kāi)啟緩存服務(wù);
    1. 優(yōu)勢(shì)1:在初始化服務(wù)時(shí),限制加載數(shù)據(jù)的速度;
    2. 優(yōu)勢(shì)2:批量查詢(xún)數(shù)據(jù)庫(kù),減少與數(shù)據(jù)庫(kù)之間的網(wǎng)絡(luò)交互;

緩存穿透的問(wèn)題

問(wèn)題:

  • 緩存穿透是指查詢(xún)一個(gè)根本不存在的數(shù)據(jù),緩存層和存儲(chǔ)層都不會(huì)命中,
  • 緩存穿透將導(dǎo)致不存在的數(shù)據(jù)每次請(qǐng)求都要到存儲(chǔ)層去查詢(xún),失去了緩存保護(hù)后端存儲(chǔ)的意義。

原因:代碼問(wèn)題, 爬蟲(chóng),攻擊,大量空命中

場(chǎng)景:查詢(xún)某個(gè)文章,給了一個(gè)錯(cuò)誤的文章id。一直查詢(xún)不到。

方法:

緩存空對(duì)象

  • 空值做緩存,即緩存層中存了更多的鍵,這就需要更多的內(nèi)存空間 ,可以對(duì)其設(shè)置一個(gè)較短的過(guò)期時(shí)間,讓其自動(dòng)清除。
  • 優(yōu)點(diǎn)是實(shí)時(shí)性高,代碼維護(hù)簡(jiǎn)單。

可以緩存到本地內(nèi)存中,空對(duì)想用一個(gè)靜態(tài)變量。這樣不會(huì)造成 造成占用內(nèi)存。

參考鏈接

  1. ehcache、memcache、redis三大緩存比較
  2. MemCached vs Redis 對(duì)象緩存的比較
  3. 總結(jié):如何使用redis緩存加索引處理數(shù)據(jù)庫(kù)百萬(wàn)級(jí)并發(fā)
  4. 學(xué)習(xí)筆記:cache 和spring cache 技術(shù)---本地緩存-分布式緩存,緩存穿透,雪崩,和熱點(diǎn)key的問(wèn)題
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容