Ehcache 3.x 快速使用

來源:互聯網
上載者:User
Ehcache 3.X快速使用 簡介 Ehcache 是一個開源的高效能緩衝,擁有很高的拓展性和伸縮性,廣泛使用各種 Java 項目中(如 Hibernate 預設使用 Ehcache作為二級緩衝),在目前基於 Java 的緩衝方案裡,幾乎是效能最高的實現,目前新版本的 Ehcache 3.X 通過支援 Terracotta 改善了2.X 版本體驗不佳的分布式緩衝支援;
Ehcahe 3.X 和 Ehache 2.X 的 API 差異比較大,以下樣本以 Ehcache 3.x 為主;
Ehcache 官網: http://www.ehcache.org Ehcache 3.X 技術文檔: http://www.ehcache.org/documentation/
使用 Ehcache 需要匯入依賴:org.ehcache:ehcache 如在 Gradle 中:  
dependencies {
    compile 'org.ehcache:ehcache:3.4.0'
}

Hello world 以下通過一個簡單的樣本,來示範 Ehcache 3.X 的基本使用,Ehcache支援2種配置方式:直接通過編碼配置,通過XML配置; 直接編碼配置  
//構建一個緩衝管理器,建立一個預設的緩衝 "preConfigured"
CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
        .withCache("preConfigured",         //緩衝別名
                CacheConfigurationBuilder.newCacheConfigurationBuilder(Long.class, String.class,   
                        ResourcePoolsBuilder.heap(100))         //設定緩衝堆容納元素個數
                        .build())
        .build(true);               //建立之後立即初始化
//從緩衝管理器中擷取預定的緩衝
Cache<Long, String> preConfigured
        = cacheManager.getCache("preConfigured", Long.class, String.class);
 
//直接從緩衝管理器建立一個新的緩衝
Cache<Long, String> myCache = cacheManager.createCache("myCache",
        CacheConfigurationBuilder.newCacheConfigurationBuilder(Long.class, String.class,
                ResourcePoolsBuilder.heap(100)).build());
 
//向緩衝裡添加緩衝索引值
myCache.put(1L, "Hello World!");
//從指定緩衝裡擷取索引值
String value = myCache.get(1L);
 
cacheManager.close();
通過XML配置 在項目根目錄建立XML設定檔: ehcache.xml  
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
        xmlns='http://www.ehcache.org/v3'
        xsi:schemaLocation="http://www.ehcache.org/v3 http://www.ehcache.org/schema/ehcache-core.xsd">
 
    <!--緩衝配置方式1:直接配置一個cache節點-->
    <!--完整配置一個緩衝-->
    <cache alias="myCache1">
        <!--儲存條目索引和儲存實值型別配置-->
        <key-type>java.lang.String</key-type>      <!--緩衝條目索引-->
        <value-type>java.lang.String</value-type>  <!--緩衝項目類型-->
         <!--儲存層配置-->
         <resources>
            <heap unit="entries">2000</heap>       <!--配置堆儲存-->
            <offheap unit="MB">20</offheap>        <!--配置堆外儲存-->
         </resources>
    </cache>
    
    <!--緩衝配置方式2:通過緩衝模板配置cache節點-->
    <!--配置一個緩衝模板-->
    <cache-template name="myDefault">
        <key-type>java.lang.Long</key-type>
        <value-type>java.lang.String</value-type>
        <heap unit="entries">200</heap>
    </cache-template>
    <!--使用緩衝模板配置緩衝-->
    <cache alias="myCache2" uses-template="myDefault" />
    <cache alias="myCache3" uses-template="myDefault">
        <value-type>java.lang.Number</value-type>
    </cache>
 
 
</config>
使用緩衝代碼:
 
//從設定檔建立設定物件
Configuration xmlConf = new XmlConfiguration(getClass().getResource("/ehcache.xml"));
//建立緩衝管理器
CacheManager cacheManager = CacheManagerBuilder.newCacheManager(xmlConf);
 
//從緩衝管理器中擷取緩衝
Cache<Long,String> mycache1 = cacheManager.getCache("myCache1",Long.class,String.class);
//使用緩衝
mycache1.put(1L,"Hello world!");
mycache1.get(1L);
 
//清空緩衝,關閉緩衝管理器
mycache1.clear();
cacheManager.close();

詳細配置 以下是一份比較詳細的 ehache 設定檔:  
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
        xmlns='http://www.ehcache.org/v3'
        xsi:schemaLocation="http://www.ehcache.org/v3 http://www.ehcache.org/schema/ehcache-core.xsd">
    
    <!--配置硬碟持久化目錄-->
    <persistence directory="usr/tmp/ehcache" />
 
    <!--完整配置一個緩衝-->
    <cache alias="myCache1">
        <!--儲存條目索引和儲存實值型別配置-->
        <key-type>java.lang.String</key-type>      <!--緩衝條目索引-->
        <value-type>java.lang.String</value-type>  <!--緩衝項目類型-->
        <!--緩衝到期配置-->
        <expiry>
            <tti unit="minutes">2</tti>   <!--使用 TTI(time to idle) 策略-->
            <!--<ttl unit="minutes">30</ttl>  使用 TTL(time to leave)策略 -->
        </expiry>
        <!--儲存層配置-->
        <resources>
            <heap unit="entries">2000</heap>       <!--配置堆儲存-->
            <offheap unit="MB">20</offheap>        <!--配置堆外儲存-->
            <disk unit="MB" persistent="true"

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.