關於ehcache快取的使用(簡單對比redis)

2021-09-10 19:08:14 字數 1126 閱讀 3908

最近在做乙個專案,某個介面查詢資料到返回資料總計需要7000+毫秒,一直在考慮優化的問題,優化也有原來的一家一家查詢到一次查詢所有的,在查詢不同天數。結果是1500+,雖然優化了不少,但是資料結構會變化,前台渲染資料會更加麻煩,暫時也沒有更新。所以後來就採用了快取的機制,查詢的資料快取10小時,雖然第一次查詢比較慢,但是以後會好很多。

在使用快取的時候,第一反應是:redis,但是後來還是決定使用ehcache,ehcache主要是用來快取一些簡單的資料。redis太重,並且需要伺服器。

關於redis和ehcache的對比:

需要注意的是: spring 提供了對快取功能的抽象:即允許繫結不同的快取解決方案(如ehcache),但本身不直接提供快取功能的實現。它支援註解方式使用快取,非常方便。

總體流程:

新增依賴

net.sf.ehcache

ehcache

2.10.4

配置bean:ehcachemanage***ctorybean 和 cachemanager

@configuration

@enablecaching

public class ehcacheconfig

@bean

public cachemanager cachemanager()

}

在需要快取的方法上新增註解:@cacheable(cachenames = "autotransmission") :名字在xml中需要使用

@cacheable(cachenames = "autotransmission") //快取,儲存10小時

public ajaxjson autotransmissionsevendays(string industrycode){

在快取xml檔案中配置快取資訊。

<?xml version="1.0" encoding="utf-8"?>

到此快取已經可以使用了。

2018-07-09更新:ehcache基於spring的配置確實簡單,並且非常容易使用,但是需要注意的是,如果你重啟服務的話,所有的快取都會丟失,需要重新快取資料。這是因為:ehcache的快取是快取到jvm中的。

ehcache 快取使用

一 詳細配置步驟 1,新增ehcache.xml檔案 將ehcache.xml檔案新增到src路徑下面。ehcache.xml檔案內容如下 2,新增spring配置檔案 二 使用 1,定義ehcache工具方法 public class ehcache public cache getcache p...

EHcache快取使用

1 fifo,first in first out,這個是大家最熟的,先進先出。2 lfu,less frequently used,就是上面例子中使用的策略,直白一點就是講一直以來最少被使用的。如上面所講,快取的元素有乙個 hit 屬性,hit 值最小的將會被清出快取。3 lru,least re...

Shiro 使用EhCache快取

在shiro中加入快取可以使許可權相關操作盡可能快,避免頻繁訪問資料庫獲取許可權資訊,因為對於乙個使用者來說,其許可權在短時間內基本是不會變化的。這對資料庫來說是沒必要的消耗。接下來使用快取來解決這個問題。引入ehcache的相關依賴 org.apache.shiro shiro ehcache 1...