之前的文章 spring boot整合 cache 以redis服務(wù) 處理數(shù)據(jù)緩存 便捷開發(fā) 帶著大家通過spring boot整合了 cache 緩存
那么 我們就來說說 其他服務(wù)的緩存
而spring boot默認的緩存方案就是 cache 用simple模式
spring boot的強大在于它的整合能力 它將其他緩存技術(shù)整合 統(tǒng)一了接口
簡單說 所有的接口都是一樣的 代碼不用動 換實現(xiàn)就好了
那么問題來了,都有哪些整合技術(shù)呢?
如下圖
這是官方給出的解決方案
那么 我們這里 就在說一下
memcached
Redis
Simple
Ehcache
Redis之前說過了 Simple就是默認的
然后 本文 我們來說 Ehcache
然后 我們打開 java spring boot項目
pom.xml 導(dǎo)入坐標(biāo)
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
然后 application.yml 加上如下代碼
spring:
cache:
type: ehcache
這里 就是告訴它 我們 cache 要用 ehcache服務(wù)
然后 找到如下圖 目錄 在下面創(chuàng)建一個 ehcache.xml
參考代碼如下
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://www.ehcache.org/ehcache.xsd"
updateCheck="false">
<defaultCache
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
maxEntriesLocalHeap="10000"
maxEntriesLocalDisk="10000000"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU">
<persistence strategy="localTempSwap"/>
</defaultCache>
<!-- 添加其他自定義緩存配置 -->
</ehcache>
地址這里 會出現(xiàn)報紅的情況 這個是idea的問題 和我們沒關(guān)系 不用管
然后 來說說它的配置
eternal: 緩存條目是否永久有效,這里設(shè)置為 false 表示不永久有效。
timeToIdleSeconds: 緩存條目在空閑多少秒后過期。
timeToLiveSeconds: 緩存條目在存活多少秒后過期。
maxEntriesLocalHeap: 緩存在堆內(nèi)存中的最大條目數(shù)。
maxEntriesLocalDisk: 緩存在磁盤中的最大條目數(shù)。
diskExpiryThreadIntervalSeconds: 磁盤過期線程的運行間隔,用于清理過期的磁盤緩存條目。
memoryStoreEvictionPolicy: 內(nèi)存存儲驅(qū)逐策略,這里設(shè)置為 LRU (Least Recently Used,最近最少使用)。
后面是元素時間和策略 如果你想具體了解 可以自己去搜索
老規(guī)矩 啟動類 加上 EnableCaching 啟動cache
這里 我們屬性類 就不需要 implements Serializable了
然后 我們接口方法還是這樣寫
我們聲明Cacheable 緩存空間叫 cacheSpace
還是那句話 如果根據(jù)id查 可以把id作為key進行存儲
但如果這個時候 你直接啟動項目 然后調(diào)用接口會報錯的
因為 現(xiàn)在還沒有 cacheSpace 這個緩存
ehcache.xml加入代碼
<!-- 添加其他自定義緩存配置 -->
<cache name="cacheSpace"
eternal="false"
timeToIdleSeconds="300"
timeToLiveSeconds="600"
maxEntriesLocalHeap="1000"
maxEntriesLocalDisk="10000"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"/>
我們加一個叫 cacheSpace 的緩存
重新啟動項目
然后 我們調(diào)用接口
正常返回 看項目控制臺 明顯是有執(zhí)行sql的
然后 我們清空控制臺內(nèi)容 然后重新調(diào)接口文章來源:http://www.zghlxwxcb.cn/news/detail-825324.html
很明顯 我們的緩存已經(jīng)形成了文章來源地址http://www.zghlxwxcb.cn/news/detail-825324.html
到了這里,關(guān)于spring boot整合cache使用Ehcache 進行數(shù)據(jù)緩存的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!