一、什么是緩存 Cache
Cache 一詞最早來自于CPU設(shè)計(jì)
當(dāng)CPU要讀取一個數(shù)據(jù)時,首先從CPU緩存中查找,找到就立即讀取并送給CPU處理;沒有找到,就從速率相對較慢的內(nèi)存中讀取并送給CPU處理,同時把這個數(shù)據(jù)所在的數(shù)據(jù)塊調(diào)入緩存中,可以使得以后對整塊數(shù)據(jù)的讀取都從緩存中進(jìn)行,不必再調(diào)用內(nèi)存。正是這樣的讀取機(jī)制使CPU讀取緩存的命中率非常高(大多數(shù)CPU可達(dá)90%左右),也就是說CPU下一次要讀取的數(shù)據(jù)90%都在CPU緩存中,只有大約10%需要從內(nèi)存讀取。這大大節(jié)省了CPU直接讀取內(nèi)存的時間,也使CPU讀取數(shù)據(jù)時基本無需等待??偟膩碚f,CPU讀取數(shù)據(jù)的順序是先緩存后內(nèi)存。
再到后來,出先了硬盤緩存,然后到應(yīng)用緩存,瀏覽器緩存,Web緩存,等等!
緩存為王??!
Spring Cache
Spring Cache是Spring針對Spring應(yīng)用,給出的一整套應(yīng)用緩存解決方案。
Spring Cache本身并不提供緩存實(shí)現(xiàn),而是通過統(tǒng)一的接口和代碼規(guī)范,配置、注解等使你可以在Spring應(yīng)用中使用各種Cache,而不用太關(guān)心Cache的細(xì)節(jié)。通過Spring Cache ,你可以方便的使用
各種緩存實(shí)現(xiàn),包括ConcurrentMap,Ehcache 2.x,JCache,Redis等。
Spring中Cache的定義
Sping 中關(guān)于緩存的定義,包括在接口 org.springframework.cache.Cache 中,
它主要提供了如下方法
// 根據(jù)指定key獲取值T get(Object key, Class type) // 將指定的值,根據(jù)相應(yīng)的key,保存到緩存中 void put(Object key, Object value); // 根據(jù)鍵,回收指定的值 void evict(Object key)