OFBiz的Cache研究


任何一个cache对象的配置属性都可以在cache.properties设置。

{cache-name}.maxSize (内存大小)
{cache-name}.expireTime (失效时间)
{cache-name}.useSoftReference (true 或者 false).
该useSoftReference属性用于指定是否用于缓存条目。可以帮助保持大缓存,同时需要更多的内存垃圾回收器来清除这些项目占用过多内存。


例如
//    # 60 min
//    product.ecconfig.expireTime=3600000
//    product.ecconfig.useSoftReference=true
    public static UtilCache productCache = UtilCache.createUtilCache("product.ecconfig", true);


使用
if(UtilValidate.isNotEmpty(productCache.get(condition))){
        	long count =(Long) productCache.get(condition);
        	if(count>0){result="Y";}
        	else{result="N";}
        	return result;
        }
        
        try {
			long count = delegator.findCountByCondition("EcShopProduct", condition, null, null);
			productCache.put(condition, count);
			Debug.log(" productCategoryId="+productCategoryId+" productFeatureList="+productFeatureList+" count="+count, module);
			if(count>0){result="Y";}
		} catch (GenericEntityException e) {
			Debug.logError(e.getMessage(), module);
			return result;
		}




缓存工具
缓存管理
浏览缓存大小和命中/错失统计
清除全部缓存、单独的缓存甚至单独的缓存行
清除全部过期的缓存记录
管理缓存参数如大小限止、过期时间、软参考等
浏览每个缓存中的单独的元素

附cache的通用使用方法
http://www.amicontech.com/blog/caching-in-opentaps-ofbiz/

你可能感兴趣的:(cache)