各位IT同事們:
? ? ? ? ?你們好仔戈,我是一名小小的IT程序員。最近無聊想寫寫博客窃款,提升一下自己,這部最近公司項目使用緩存redis 牍氛,由于高并發(fā)下環(huán)境下晨继,redis 緩存撐不住,同時公司架構(gòu)師建議使用Eache二級緩存搬俊。了解了一下紊扬。為大家介紹下Ehache 和 Spring 整合 使用注解的方式。話不多說唉擂,首先就介紹一下Ehcache餐屎。
1. Ehcache簡介
? ? ? 1.Ehcache是一非常輕量級別的緩存實現(xiàn)。是一個純java進程內(nèi)的緩存框架玩祟,Ehcache 具有兩種存儲方式:內(nèi)存和磁盤
2.Ehcache特點
? ? ? 1.快速
? ? ? 2.簡單
? ? ? 3.可以遠程調(diào)用(RMI)和通過插入API的方式進行分布式緩存
? ? ? 4.支持多種緩存策略(FIFO:先進先出腹缩,LRE:最近未使用的,LFE:最近少使用的 )
? ? ? 5.可以和hibernate 整合使用
3.配置Ehcache.xml
? ? ? ? <ehcache?xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="../config/ehcache.xsd">
? ? ?上述代碼 就是定義一個ehcache.xml文件 定義一個xml必須遵循Xml Schemal的定義 我們可以使用在線的ehcache.xsd 如:http://ehcache.org/ehcache.xsd 也可以將在線的ehcache.xsd下載到本地卵凑,然后拷貝到你的目錄下
<diskStore path ="java.io.tmpdir">
<diskStore>元素:指定一個目錄庆聘,把Ehcache 緩存的數(shù)據(jù)寫入硬盤上時,然后在將把這個數(shù)據(jù)寫入這個文件目錄下 元素有path:
? ? user.home 用戶主目錄
? ? user.dir 用戶當前工作目錄
? ? java.io.tmpdir 默認臨時文件路徑勺卢。
<defaultCache
? ? ? ? ? ?maxElementsInMemory="10000"
? ? ? ? ? ? eternal="false"
? ? ? ? ? ? timeToIdleSeconds="120"
? ? ? ? ? ? timeToLiveSeconds="120"
? ? ? ? ? ? maxElementsOnDisk="10000000"
? ? ? ? ? ? diskExpiryThreadIntervalSeconds="120"
? ? ? ? ? ? memoryStoreEvictionPolicy="LRU">
? ? ? ?<defaultCache>:
? ? ? ? ? 屬性有:maxElementsInMemory :設(shè)置該對象緩存到內(nèi)存的最大的數(shù)目
? ? ? ? ?eternal:設(shè)置該對象緩存到內(nèi)存是否永遠不過期伙判,默認為false ,如果為true,則會忽略掉? ? ? ? ? ? ?timeToldleSeconds和timeToliveSeconds? ? ?
? ? ? ? ? ? timeToldeSeconds:允許對象處于空間時間為多久,以秒為單位黑忱。當對象第一次訪問后宴抚,如果超過了空閑時間,沒有訪問甫煞,那么會被清理掉
? ? ? ? ? ? ? timeToLiveSeconds:允許對象對象處于緩存中多少時間菇曲,以秒為單位,如果當對象超過了緩存時間,那么該對象就會過期抚吠,當對象過期后,EHcache 將清理過期對象
? ? ? ? ? ? ? overFlowToDisk:如果該內(nèi)存中的對象超過了maxElementsMemory 后常潮,會將該對象寫入硬盤的緩存中,只有該對象實現(xiàn)了Serializable接口才行
? ? ? ? ? ? memoryStoreEvictionPolicy:設(shè)置對象清除策略
? ? ? ? ? ? ? ? ? ? ? FIFO:先進先出
? ? ? ? ? ? ? ? ? ? ? LFU:一直以來最少被使用的先清除
? ? ? ? ? ? ? ? ? ? ? LRU:最近被最少使用的
? ? ? ? ??Spring 整合 Ehcache 如何
? ? ? ? 1.加入cache 頭文件名? xmlns:cache="http://www.springframework.org/schema/cache"
2.加入cache.xsd文件 http://www.springframework.org/schema/cachehttp://www.springframework.org/schema/cache/spring-cache.xsd
? ? ? ? 3.啟用Ehcache激活spring緩存注解
<cache?:annotation-driven cache-manager="cacheManager">
? ? ? ? ? 4.加入緩存管理器
? ? ? ? ?<bean?id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
? ? ? ? <property?name="cacheManager" ref="ehCacheManager" /></bean>
? ? ? ?5.引入ehcache.xml
<bean id="ehCacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property? name="configLocation" value="classpath:spring/ehcache.xml"/>
</bean>
上述描述為Spring 整合 Ehache 楷力,有不對的地方喊式,請指出。
? ? ? ? ? ? ? ? ?------------------------一名萌新程序員
? ? ??