package com.zxt.basic.util.cache;
import java.util.List;
import com.zxt.basic.util.cache.ehcache.EHCacheEngine;
import com.zxt.basic.util.cache.memcached.MemcachedEngine;
import com.zxt.basic.util.PropertiesUtil;
/**
*
* 类名称:CacheUtil
* 类描述:缓存工具类
* 创建人:niushichao
* 创建时间:Jun 21, 2012 8:32:04 AM
* 修改人:
* 修改时间:Jun 21, 2012 8:32:04 AM
* 修改备注:
* @version 1.0.0
*
*/
public class CacheUtil {
//缓存引擎接口 类型变量
private static CacheEngine ce;
//属性文件配置的缓存类型变量
private static final String CACHE_TYPE = "cache.zxt.type";
static{
String cacheType = PropertiesUtil.getString(CACHE_TYPE);
//配置文件未配置“cache.zxt.type”参数,默认使用oscache
if("ehcache".equals(cacheType)){
CacheEngineFactory.setEngine(CacheType.EHCACHE, new EHCacheEngine());
ce = CacheEngineFactory.getCacheEngine(CacheType.EHCACHE);
}else if("memcached".equals(cacheType)) {
CacheEngineFactory.setEngine(CacheType.MEMCACHED, new MemcachedEngine());
ce = CacheEngineFactory.getCacheEngine(CacheType.MEMCACHED);
}else{
ce = CacheEngineFactory.getCacheEngine(CacheType.OSCACHE);
}
}
/**
* @author niushichao
* putInCache 加入缓存项
* @param key 键
* @param value值 void
* @exception
* @since 1.0.0
*/
public static void putInCache(String key,Object value){
try {
ce.putInCache(key, value,CacheEngine.DEFAULT_CACHE_NAME);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @author niushichao
* putInCache 加入缓存项
* @param key 键
* @param value值
* @param cacheName名称 void
* @exception
* @since 1.0.0
*/
public static void putInCache(String key,Object value,String cacheName) {
try {
ce.putInCache(key, value, cacheName);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @author niushichao
* getFromCache 获取缓存项
* @param key 键值
* @return Object
* @exception
* @since 1.0.0
*/
public static Object getFromCache(String key){
return ce.getFromCache(key,CacheEngine.DEFAULT_CACHE_NAME);
}
/**
* @author niushichao
* getFromCache 获取缓存项
* @param key 键
* @param cacheName 名称
* @return Object
* @exception
* @since 1.0.0
*/
public static Object getFromCache(String key,String cacheName){
return ce.getFromCache(key, cacheName);
}
/**
* @author niushichao
* flush 清洗缓存项
* @param key void
* @exception
* @since 1.0.0
*/
public static void flush(String key){
ce.flush(key,CacheEngine.DEFAULT_CACHE_NAME);
}
/**
* @author niushichao
* flush 清洗缓存项
* @param key 键
* @param cacheName 名称 void
* @exception
* @since 1.0.0
*/
public static void flush(String key,String cacheName){
ce.flush(key, cacheName);
}
/**
* @author niushichao
* flushAll 清洗所有缓存项
* @exception
* @since 1.0.0
*/
public static void flushAll(){
ce.flushAll();
}
/**
* @author niushichao
* flushAll 清洗指定名称的所有缓存项
* @param cacheName 名称 void
* @exception
* @since 1.0.0
*/
public static void flushAll(String cacheName){
ce.flushAll(cacheName);
}
/**
* @author niushichao
* remove 移除缓存项
* @param key 键值 void
* @exception
* @since 1.0.0
*/
public static void remove(String key){
ce.remove(key,CacheEngine.DEFAULT_CACHE_NAME);
}
public static void remove(String key,String cacheName){
ce.remove(key, cacheName);
}
/**
* @author niushichao
* removeAll 移除所有缓存项
* @exception
* @since 1.0.0
*/
public static void removeAll(){
ce.removeAll();
}
/**
* @author niushichao
* removeAll 移除指定名称的所有缓存项
* @param cacheName 名称 void
* @exception
* @since 1.0.0
*/
public static void removeAll(String cacheName){
ce.removeAll(cacheName);
}
/**
* @author niushichao
* getAllObjFromCache 获取当前缓存中所有缓存项列表
* @return List
* @exception
* @since 1.0.0
*/
public static List getAllObjFromCache(){
return ce.getAllObjFromCache(CacheEngine.DEFAULT_CACHE_NAME);
}
/**
* @author niushichao
* getAllObjFromCache 获取当前缓存中指定名称的所有缓存项列表
* @param cacheName 名称
* @return List
* @exception
* @since 1.0.0
*/
public static List getAllObjFromCache(String cacheName){
return ce.getAllObjFromCache(cacheName);
}
}