Javaのキャッシュ処理 – Ehcache
こんにちは、かねこです。
はじめに
Javaのキャッシュ処理といえばJCache(JSR-107)なんだけど、僅差でJavaEE7にインクルードされなかったので代替品を・・・ということでEhcacheがなかなかよさげです。
(そのJCacheも2001年から長い年月をかけて、今年やっと最終リリースとなりました。)
また、Ehcacheは現時点でJSR-107のすべてを実装しており、互換性が非常に高いのです。
特長
・高速
・シンプル
・軽量
・最小限の外部依存(SLF4Jのみ!)
スケーラブルでフレキシブルで拡張性の高いとてもよいキャッシュライブラリなのです。
How to Use
導入
Mavenで。
Maven Repository – Ehcache
<dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> <version>2.8.3</version> </dependency>
ehcache.xmlをクラスパス配下に置く
各設定値はドキュメントを参照
<?xml version="1.0" encoding="UTF-8"?> <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"> <diskStore path="java.io.tmpdir"/> <defaultCache maxElementsInMemory="1000" eternal="true" overflowToDisk="true"/> <cache name="Category" maxElementsInMemory="10000" eternal="false" overflowToDisk="true" timeToIdleSeconds="3600" timeToLiveSeconds="3600" memoryStoreEvictionPolicy="LFU" /> </ehcache>
キャッシュの保存
CacheManager manager = CacheManager.getInstance(); Cache cache = manager.getCache("Category"); cache.put(new Element(cacheKey, object));
キャッシュの取得
CacheManager manager = CacheManager.getInstance(); Cache cache = manager.getCache("Category"); Element element = cache.get(cacheKey); if (element == null) { // データ取得処理 }
ディスクが早くて安い時代なので、キャッシュガンガンつかおう!
では、また。