缓存Ehcache的基本用法(对象缓存)

import java.io.Serializable; import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; import net.sf.ehcache.Element; /**** * * @author jqh * Ehcache的基本用法 * */ public class TestEhcache { public TestEhcache() { } /** * @param jqh * */ public static void main(String[] args) { //创建CacheManager方法1 //CacheManager manager = new CacheManager(); // CacheManager singletonManager = CacheManager.create(); // singletonManager.addCache("testCache"); // Cache test = singletonManager.getCache("testCache"); //创建CacheManager2 // CacheManager singletonManager = CacheManager.create(); // Cache memoryOnlyCache = new Cache("testCache", 5000, false, false, 5, 2); // manager.addCache(memoryOnlyCache); // Cache test = singletonManager.getCache("testCache"); //CacheManager singletonManager = CacheManager.create(); // singletonManager.removeCache("sampleCache1"); /* * 1.根据配置文件来创建缓存管理类。这里用绝对路径。我们用这种创建。灵活一点 */ CacheManager manager1 = new CacheManager("D://workspace//Test//src//ehcache.xml"); /* * 获得缓存的名字 */ String[] cacheNamesForManager1 = manager1.getCacheNames(); for(int i=0; i<cacheNamesForManager1.length; i++){ System.out.println(cacheNamesForManager1[i]); } //关闭缓存管理类 //CacheManager.getInstance().shutdown(); //manager1.shutdown(); Cache cache = manager1.getCache("sampleCache1"); /* * 这里假设我往缓存里存放一个Book类. * 这里如果我们是存放对象,尽量让它实现Serializable接口 */ Book b=new Book("Music Book"); Element element1=new Element("book",b); cache.put(element1); /* * update一个对象,把book的书名换为Sport Book */ Book b1=new Book("Sport Book"); Cache cache5 = manager1.getCache("sampleCache1"); cache.put(new Element("book",b1)); //获得Serializable值,一般用于存放对象 Cache cache1 = manager1.getCache("sampleCache1"); Element element14 = cache.get("book"); Serializable value = element1.getValue(); Book bb=(Book)value; System.out.println(value.toString()); System.out.println(bb.getBookName()); //获得一个没有序列化的对像 Cache cache2 = manager1.getCache("sampleCache1"); Element element2 = cache2.get("book"); Object value2 = element2.getObjectValue(); System.out.println(value2.toString()); // /获得当前Cache中element的数量(即存放对象的) int elementsInMemory = cache2.getSize(); //获得内存中elements的数量 long elementsInMemory1 = cache2.getMemoryStoreSize(); System.out.println("数量分别为:"+elementsInMemory+"和:"+elementsInMemory1); //remove一个对象 Cache cache3 = manager1.getCache("sampleCache1"); //这里我把存放进去的book类给remove掉 cache.remove("book"); } } 附Book类: import java.io.Serializable; public class Book implements Serializable { private String bookName; public Book(String bookName) { this.bookName=bookName; } public String getBookName() { return bookName; } public void setBookName(String bookName) { this.bookName = bookName; } @Override public String toString() { return bookName; } } 为了解决数据库频繁被访问而导致io瓶颈的问题,所以我们会想到用缓存。现在用的比较普遍的缓存框架有Memcached(主要用集群环境,用于大访问量的WEB环境例如:淘宝网),还有OSCACHE也是用于WEB方面的缓存(主要用于页面缓存,比如访问量的网站首页等)。而ehcache是一个纯J2SE写的缓存框架。本人项目因为也仅仅是用到J2SE的对象,所以,选择了用EHCACHE。主要原因是它是一个轻量级的缓存框架。而且可以把对象存储在内存或者磁盘里面

下载地址:
http://ehcache.sourceforge.net/features.html

例子中的ehcache.xml我们用其默认的指数去创建缓存

http://ehcache.sourceforge.net/ehcache.xml

可到这里复制一个

 

你可能感兴趣的:(框架,cache,manager,String,J2SE,import)