zoukankan      html  css  js  c++  java
  • Ehcache(2.9.x)

    Creating a CacheManager

    All usages of the Ehcache API start with the creation of a CacheManager. The following code snippets illustrate various ways to create one.

    Singleton versus Instance

    The following creates a singleton CacheManager using defaults, then list caches.

    CacheManager.create(); 
    String[] cacheNames = CacheManager.getInstance().getCacheNames();

    The following creates a CacheManager instance using defaults, then list caches.

    CacheManager manager = CacheManager.newInstance();
    String[] cacheNames = manager.getCacheNames();

    The following creates two CacheManagers, each with a different configuration, and list the caches in each.

    CacheManager manager1 = CacheManager.newInstance("src/config/ehcache1.xml"); 
    CacheManager manager2 = CacheManager.newInstance("src/config/ehcache2.xml"); 
    String[] cacheNamesForManager1 = manager1.getCacheNames(); 
    String[] cacheNamesForManager2 = manager2.getCacheNames();

    Loading a Configuration

    When a CacheManager is created, it creates caches found in a provided configuration.

    The following creates a CacheManager based on the configuration defined in the ehcache.xml file in the classpath.

    CacheManager manager = CacheManager.newInstance();

    The following creates a CacheManager based on a specified configuration file.

    CacheManager manager = CacheManager.newInstance("src/config/ehcache.xml");

    The following creates a CacheManager from a configuration resource in the classpath.

    URL url = getClass().getResource("/anotherconfigurationname.xml");
    CacheManager manager = CacheManager.newInstance(url);

    The following creates a CacheManager from a configuration in an InputStream.

    InputStream fis = new FileInputStream(new File ("src/config/ehcache.xml").getAbsolutePath());
    try {
        CacheManager manager = CacheManager.newInstance(fis);
    } finally {
        fis.close();
    }

    Adding and Removing Caches Programmatically

    Adding Caches Programmatically

    You are not limited to using caches that are placed in the CacheManager configuration. A new cache based on the default configuration can be added to a CacheManager very simply:

    manager.addCache(cacheName);

    For example, the following adds a cache called testCache to CacheManager called singletonManager. The cache is configured using defaultCache from the CacheManager configuration.

    CacheManager singletonManager = CacheManager.create(); 
    singletonManager.addCache("testCache"); 
    Cache test = singletonManager.getCache("testCache");

    As shown below, you can also create a new cache with a specified configuration and add the cache to a CacheManager. Note that when you create a new cache, it is not usable until it has been added to a CacheManager.

    CacheManager singletonManager = CacheManager.create(); 
    Cache memoryOnlyCache = new Cache("testCache", 5000, false, false, 5, 2); 
    singletonManager.addCache(memoryOnlyCache); 
    Cache test = singletonManager.getCache("testCache");

    Below is another way to create a new cache with a specified configuration. This example creates a cache called testCache and adds it CacheManager called manager.

    // Create a singleton CacheManager using defaults 
    CacheManager manager = CacheManager.create(); 
    // Create a Cache specifying its configuration. 
    Cache testCache = new Cache(new CacheConfiguration("testCache", maxEntriesLocalHeap) 
        .memoryStoreEvictionPolicy(MemoryStoreEvictionPolicy.LFU) 
        .eternal(false) 
        .timeToLiveSeconds(60) 
        .timeToIdleSeconds(30) 
        .diskExpiryThreadIntervalSeconds(0) 
        .persistence(new PersistenceConfiguration().strategy(Strategy.LOCALTEMPSWAP))); 
    manager.addCache(testCache);

    For a full list of parameters for a new Cache, see the Cache constructor at http://ehcache.org/xref/net/sf/ehcache/Cache.html.

    Removing Caches Programmatically

    The following removes the cache called sampleCache1:

    CacheManager singletonManager = CacheManager.create(); 
    singletonManager.removeCache("sampleCache1");

    Performing Basic Cache Operations

    The following examples refer to manager, which is a reference to a CacheManager that contains a cache called sampleCache1.

    Obtaining a reference to a Cache

    The following obtains a Cache called sampleCache1, which has been preconfigured in the configuration file

    Cache cache = manager.getCache("sampleCache1");

    Putting an Element in Cache

    The following puts an element into a cache

    Cache cache = manager.getCache("sampleCache1"); 
    Element element = new Element("key1", "value1"); 
    cache.put(element);

    Updating and Element in Cache

    The following updates an element in a cache. Even though cache.put( ) is used, Ehcache knows there is an existing element, and considers the put operation as an update for the purpose of notifying cache listeners.

    Cache cache = manager.getCache("sampleCache1"); 
    cache.put(new Element("key1", "value1")); 
    // This updates the entry for "key1" 
    cache.put(new Element("key1", "value2"));

    Getting an Element from Cache

    The following gets a Serializable value from an element with a key of key1.

    Cache cache = manager.getCache("sampleCache1"); 
    Element element = cache.get("key1"); 
    Serializable value = element.getValue();

    The following gets a NonSerializable value from an element with a key of key1.

    Cache cache = manager.getCache("sampleCache1"); 
    Element element = cache.get("key1"); 
    Object value = element.getObjectValue();

    Removing an Element from Cache

    The following removes an element with a key of key1.

    Cache cache = manager.getCache("sampleCache1"); 
    cache.remove("key1");

    Obtaining Cache Sizes

    The following gets the number of elements currently in the cache.

    Cache cache = manager.getCache("sampleCache1"); 
    int elementsInMemory = cache.getSize();

    The following gets the number of elements currently in the MemoryStore.

    Cache cache = manager.getCache("sampleCache1");
    long elementsInMemory = cache.getMemoryStoreSize();

    The following gets the number of elements currently in the DiskStore.

    Cache cache = manager.getCache("sampleCache1");
    long elementsInMemory = cache.getDiskStoreSize();

    Shutdown the CacheManager

    You should shut down a CacheManager after use. It does have a shut-down hook, but it is a best practice to shut it down in your code.

    The following shuts down the singleton CacheManager:

    CacheManager.getInstance().shutdown();

    The following shuts down a CacheManager instance, assuming you have a reference to the CacheManager called manager:

    manager.shutdown();

    For additional examples, see CacheManagerTest at http://ehcache.org/xref-test/net/sf/ehcache/CacheManagerTest.html.

  • 相关阅读:
    poj3278 Catch That Cow
    poj2251 Dungeon Master
    poj1321 棋盘问题
    poj3083 Children of the Candy Cor
    jvm基础知识—垃圾回收机制
    jvm基础知识1
    java面试基础必备
    java soket通信总结 bio nio aio的区别和总结
    java scoket aIO 通信
    java scoket Blocking 阻塞IO socket通信四
  • 原文地址:https://www.cnblogs.com/huey/p/5823142.html
Copyright © 2011-2022 走看看