JavaでCacheを使う

2249 ワード

システム・キャッシュは、アプリケーションと物理データ・ソースの間にあり、レプリケーション・データを一時的に格納するためのメモリ領域であり、アプリケーションが物理データ・ソースにアクセスする回数を減らし、アプリケーションの実行性能を向上させることを目的としています.キャッシュはメモリが限られていることを想定し、キャッシュの時効性も限られているため、メモリ数の大きさを設定して失効アルゴリズムを実行することができ、メモリがいっぱいになった場合、最小限のアクセスなどのアルゴリズムでキャッシュを直接削除したり、ハードディスクに切り替えたりすることができる.
Java開発ではデータソースを共有し、自分で簡単なCacheを書くことができ、EHcache、JBossCache、JCS(Java Cache System)などの既存製品を使用することもできます.
Cacheの特徴は:期限切れの時間、容量の計画、策略をクリアして、命中率の統計など、自分でCacheを実現する構想は:1つの静的なMapを作成して、そして期限切れ、容量の設定、クリアなどの方法を設定して、使用することができます.
ここではEHcache,EHcacheが優れたcache製品として,分散型のcacheだけでなく,状態同期としてもマルチマシンcopyを実現できることを改めて述べる.EHcacheはhibernateから発展し、メモリキャッシュ、ハードディスクキャッシュ、分散キャッシュをサポートしています.EHcache CacheManagerのエントリから、まずコンストラクション関数またはCacheManagerを介してgetInstance()は、多くのcacheを管理するために使用されるインスタンスを取得します.次いで、CacheコンストラクタによってCacheインスタンスが得られ、各Cacheは1つのHashMapに類似し、複数のElementが関連付けられる.Elementはキャッシュを保存する場所です.
一、環境構成
EHcacheパッケージをダウンロード(http://d2zwv9pap9ylyd.cloudfront.net/ehcache-2.7.3-distribution.tar.gz)を選択し、jarパッケージをWEB-INF/libの下に置きます.
ehcache.xmlはclassディレクトリの下にコピーします.
二、webで.xmlにfilterを追加し、ehcacheを構成します.トップページをキャッシュしたいなら
<filter>
    <filter-name>indexCacheFilterfilter-name>
    <filter-class>
        net.sf.ehcache.constructs.web.filter.SimplePageCachingFilter
    <filter-class>
<filter>
<filter-mapping>
    <filter-name>indexCacheFilterfilter-name>
    <url-pattern>*index.action<url-pattern>
<filter-mapping>

ehcacheを変更します.xmlプロファイル
 <cache name="sampleCache1"
           maxEntriesLocalHeap="10000"//            ,       ,         (       )
           maxEntriesLocalDisk="1000" //            
           eternal="false"            // cache        ,   ,        、       
           diskSpoolBufferSizeMB="20" //
           timeToIdleSeconds="300"    //         ,               
           timeToLiveSeconds="600"    //         ,          
           memoryStoreEvictionPolicy="LFU"//
           transactionalMode="off"    //
>
        <persistence strategy="localTempSwap"/> //
    </cache>