JBoss Cache产品提供了一个非常出色的Cache Package。它不限制于JBoss,任何的App Server或者POJO都可以用。一般用法是standalone,还有种是集群用法,clustered。它提供两种Cache存储方法:TreeCache和TreeCacheAop(这个是给AOP用的,暂时我也不知道:)
今天刚好用到standalone的用法,写点心得给各位。
首先是初始化TreeCache,
TreeCache tree = new TreeCache();
然后是读进配置文件
PropertyConfigurator config = new PropertyConfigurator();
config.configure("配置文件.xml");
然后开始服务:Tree.startService();
因为Tree的结构是用NODE来Access的,TreeCache这里就很简单的用:
/level1/level2/node1 来表示两级Tree下面的Node1。
现在我们添加几个要Cache的对象。
Tree.put("/level1/level2/node1", "key1", "value1");
String[] array = { "1", "2", "3", "4" }
Tree.put("/level3/array/", "myarray", array);
大家可以看到,TreeCache里面可以存储任何种类的对象,包括所有复杂对象。
读取对象就很方便了,
String s = (String)Tree.get("/level1/level2/node1/", "key1");
value1就读出来了。
同理:String[] sarr = (String[]) Tree.get("/level3/array/","myarray");
System.out.println(sarr[1]) 会显示2
最后停止服务:Tree.stopService();
非常简单用法:)
在设置文件XML中,你可以设置对象被Cache的时间,可以分等级的设置,那里你要设置不同的Region来对应不同的等级。你还可以设置每个等级下最多的Node数量,以及Cache对象存活时间。还有个很重要的就是设置定期的检查和清理已经过期的对象。我今天就是这里设置的时间过长,才Debug了一整天 T。T
JBoss Cache 的强大功能这里所介绍的只是冰山一角,更高级的体现在Transaction的Cache,数据库层次的直接Cache, 和其他Cache包一起做不同级别的Cache。在集群环境下Cache。还有就是AOP编程的TreeCacheAop,很多的功能需要我们不断的摸索。希望此文可以抛砖引玉。