ehcache是一個巨大的可配置的野獸,並且這些例子相當複雜,通常涉及多層接口。hello世界ehcache的例子?
有沒有人遇到過最簡單的例子,它只是在內存中緩存像單個數字一樣的東西(不是分佈式的,沒有XML,只有儘可能少的java行)。然後下一個讀取請求會導致它獲得一個新的值(例如通過調用Random.nextInt()或類似的方法)
這是更快/更容易編寫我們自己的緩存的東西像這樣一個單身人士和一點同步?
沒有春天請。
ehcache是一個巨大的可配置的野獸,並且這些例子相當複雜,通常涉及多層接口。hello世界ehcache的例子?
有沒有人遇到過最簡單的例子,它只是在內存中緩存像單個數字一樣的東西(不是分佈式的,沒有XML,只有儘可能少的java行)。然後下一個讀取請求會導致它獲得一個新的值(例如通過調用Random.nextInt()或類似的方法)
這是更快/更容易編寫我們自己的緩存的東西像這樣一個單身人士和一點同步?
沒有春天請。
EhCache帶有一個具有合理到期時間(120秒)的故障安全配置。這足以啓動並運行。
進口:
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
然後,建立一個緩存是非常簡單的:
CacheManager.getInstance().addCache("test");
這將創建一個名爲test
緩存。您可以擁有許多不同的獨立緩存,它們都由相同的CacheManager
管理。添加(key, value)
對這個緩存是簡單:
CacheManager.getInstance().getCache("test").put(new Element(key, value));
檢索給定關鍵字的值是一樣簡單:
Element elt = CacheManager.getInstance().getCache("test").get(key);
return (elt == null ? null : elt.getObjectValue());
如果嘗試默認120秒期滿後訪問的元素期間,緩存將返回空值(因此檢查elt
是否爲空)。您可以通過創建自己的ehcache.xml
文件來調整到期期限 - 在ehcache網站上的文檔體面。
的工作實施jbrookover的回答:
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
import net.sf.ehcache.Cache;
public class EHCacheDemo {
public static final void main(String[] igno_red) {
CacheManager cchm = CacheManager.getInstance();
//Create a cache
cchm.addCache("test");
//Add key-value pairs
Cache cch = cchm.getCache("test");
cch.put(new Element("tarzan", "Jane"));
cch.put(new Element("kermit", "Piggy"));
//Retrieve a value for a given key
Element elt = cch.get("tarzan");
String sPartner = (elt == null ? null : elt.getObjectValue().toString());
System.out.println(sPartner); //Outputs "Jane"
//Required or the application will hang
cchm.removeAllCaches(); //alternatively: cchm.shutdown();
}
}
使用EHCache需要知道的大部分方法的甜和短的教程! – Tastybrownies 2014-05-26 02:03:29
非常好,謝謝! 但是,這並沒有給任何超過單身人士的(now-updatedat)>超時檢查。理想情況下,緩存應該在舊的結果關閉時返回並得到一個新的結果,以避免所有讀取線程被阻塞幾秒鐘。 ehcache可以做到這一點,還是應該堅持使用單例和同步? 非常感謝! – wingnut 2011-06-08 15:26:42
據我所知,EhCache沒有內置最後更新的時間檢查功能。您可以在更新時擦除緩存條目,也可以在從緩存中抓取之前進行自己的檢查。 EhCache將有一個插入對象的時間戳,這樣就完成了。當緩存填滿時,它還會處理移除不常使用的對象。最後,如果您願意,它可以讓您在將來做更多的事情。但是,是的,有時寫你自己更簡單。 – jbrookover 2011-06-09 13:36:57
感謝您的寶貴回答 – Jamsheer 2014-08-26 06:39:01