Ehcache快取配置和基本使用

Ehcache在java專案廣泛的使用。它是一個開源的、設計於提高在資料從RDBMS中取出來的高花費、高延遲採取的一種快取方案。正因為Ehcache具有健壯性(基於java開發)、被認證(具有apache 2.0 license)、充滿特色(稍後會詳細介紹),所以被用於大型複雜分散式web application的各個節點中。
夠快
Ehcache的發行有一段時長了,經過幾年的努力和不計其數的效能測試,Ehcache終被設計於large, high concurrency systems.
夠簡單
開發者提供的介面非常簡單明瞭,從Ehcache的搭建到運用執行僅僅需要的是你寶貴的幾分鐘。其實很多開發者都不知道自己用在用Ehcache,Ehcache被廣泛的運用於其他的開源專案
比如:hibernate
夠袖珍
關於這點的特性,官方給了一個很可愛的名字small foot print ,一般Ehcache的釋出版本不會到2M,V 2.2.3 才 668KB。
夠輕量
核心程式僅僅依賴slf4j這一個包,沒有之一!
好擴充套件
Ehcache提供了對大資料的記憶體和硬碟的儲存,最近版本允許多例項、儲存物件高靈活性、提供LRU、LFU、FIFO淘汰演算法,基礎屬性支援熱配置、支援的外掛多
監聽器
快取管理器監聽器 (CacheManagerListener)和 快取監聽器(CacheEvenListener),做一些統計或資料一致性廣播挺好用的
如何使用?
POM檔案
<!--加入快取-->net.sf.ehcacheehcache-core2.6.6
配置檔案
在resources資源目錄下建立一個ehcache-config.xml檔案,內容如下:
<?xml version="1.0"encoding="UTF-8"?><!-- EhCache在每次啟動的時候都要連線到 ehcache 網站上去檢查新版本 使用如上的 updateCheck="false" 來禁止這個檢查新版本 --><!--
name:cache唯一標識
eternal:快取是否永久有效
maxElementsInMemory:記憶體中最大快取物件數
overflowToDisk(true,false):快取物件達到最大數後,將快取寫到硬碟中
diskPersistent:硬碟持久化
timeToIdleSeconds:快取清除時間
timeToLiveSeconds:快取存活時間
diskExpiryThreadIntervalSeconds:磁碟快取的清理執行緒執行間隔
memoryStoreEvictionPolicy:快取清空策略
1.FIFO:first in first out 先講先出
2.LFU: Less Frequently Used 一直以來最少被使用的
3.LRU:Least Recently Used 最近最少使用的
--><!-- 快取 --><!-- 快取 -->
Spirng整合配置
注意一下內容必須註冊在Spring的主配置檔案中
<!--快取配置檔案介面-->
使用方法
這裡可以使用註解的方式 @Cacheable(value = “cache_pos_codes”) 其中value的是設定的配置檔案ehcache-config.xml的配置名稱。需要注意的是 import org.springframework.cache.annotation.Cacheable;
@RequestMapping(value ="/date",method = RequestMethod.GET,produces = MediaType.APPLICATION_JSON_VALUE + CHARSET)@ResponseBody@Cacheable(value ="cache_pos_codes")publicStringgetDate(){ SimpleDateFormat simpleDateFormat =newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");returnsimpleDateFormat.format(newDate()); }
測試發現,不斷重新整理該URL,發現不返回實時的時間,而是返回快取的字串時間
進群:可以領取免費的架構師學習資料。
進群:瞭解最新的學習動態
進群:瞭解最新的阿里,京東招聘資訊
進群:獲取更多的面試資料
1、具有1-5工作經驗的,面對目前流行的技術不知從何下手,需要突破技術瓶頸的可以加群。
2、在公司待久了,過得很安逸,但跳槽時面試碰壁。需要在短時間內進修、跳槽拿高薪的可以加群。
3、如果沒有工作經驗,但基礎非常紮實,對java工作機制,常用設計思想,常用java開發框架掌握熟練的,可以加群。
4、覺得自己很牛B,一般需求都能搞定。但是所學的知識點沒有系統化,很難在技術領域繼續突破的可以加群。
5. 群號:835638062 點選連結加入群:https://jq.qq.com/?_wv=1027&k=5S3kL3v
6.阿里Java高階大牛直播講解知識點,分享知識,上面五大專題都是各位老師多年工作經驗的梳理和總結,帶著大家全面、科學地建立自己的技術體系和技術認知!