//创建一个单例 static private MemberCache instance = new MemberCache();
//真正的缓存对象,你缓存的东西全存在里面了 private Cache cache; //构造函数 public MemberCache() { try { //初始化缓存对象 cache = CacheManager.getInstance().getCache("member"); } catch (CacheException ex) { log.error("Cannot get the WhirlyCache. Member caching is disabled.", ex); } catch (LinkageError e) { // @todo: Should be never throw log.error("Cannot get the WhirlyCache caused by Package Conflict. Member caching is disabled.", e); } }
static public MemberCache getInstance() { return instance; }
public String getEfficiencyReport() { String result = "No report"; if (cache == null) { if (MVNForumConfig.getEnableCacheMember() == false) { result = "Cache is disabled."; } else { result = "Cache cannot be inited"; } } else if (cache instanceof CacheDecorator) { result = ((CacheDecorator)cache).getEfficiencyReport(); } return result; }
public void clear() { if (cache != null) { cache.clear(); } }
//这里存储并读取缓存一个用户总数信息 public long getMemberTotalCount() throws ObjectNotFoundException, AssertionException, DatabaseException{ long count = 0; if (cache != null) { //这里是键值 String key = new String("getMemberTotalCount"); //根据键值获取对象,这里原来是一个Long,但是存不进去,换成String就可以了 String Scount = (String)cache.retrieve(key); //如果缓存中不存在 if (Scount == null) { //从非缓存中读取 Scount= = String.valueOf(DAOFactory.getMemberDAO().getNumberOfMembers()); //存入缓存 cache.store(key, Scount, DateUtil.MINUTE); log.info("缓存中不存在,创建后存入"); }else{ log.info("从缓存中读取会员总数成功"); } } else { //当前缓存未启用,从数据库中直接读取
count = new Long(DAOFactory.getMemberDAO().getNumberOfMembers()); }文章出处:http://www.diybl.com/course/3_program/java/javajs/20071221/92766.html
public class MemberCache {
//这里是默认的缓存时间
public static final long TIME_OUT = DateUtil.HOUR;
private static Log log = LogFactory.getLog(MemberCache.class);
//创建一个单例
static private MemberCache instance = new MemberCache();
//真正的缓存对象,你缓存的东西全存在里面了
private Cache cache;
//构造函数
public MemberCache() {
try {
//初始化缓存对象
cache = CacheManager.getInstance().getCache("member");
} catch (CacheException ex) {
log.error("Cannot get the WhirlyCache. Member caching is disabled.", ex);
} catch (LinkageError e) {
// @todo: Should be never throw
log.error("Cannot get the WhirlyCache caused by Package Conflict. Member caching is disabled.", e);
}
}
static public MemberCache getInstance() {
return instance;
}
public String getEfficiencyReport() {
String result = "No report";
if (cache == null) {
if (MVNForumConfig.getEnableCacheMember() == false) {
result = "Cache is disabled.";
} else {
result = "Cache cannot be inited";
}
} else if (cache instanceof CacheDecorator) {
result = ((CacheDecorator)cache).getEfficiencyReport();
}
return result;
}
public void clear() {
if (cache != null) {
cache.clear();
}
}
//这里存储并读取缓存一个用户总数信息
public long getMemberTotalCount() throws ObjectNotFoundException, AssertionException, DatabaseException{
long count = 0;
if (cache != null) {
//这里是键值
String key = new String("getMemberTotalCount");
//根据键值获取对象,这里原来是一个Long,但是存不进去,换成String就可以了
String Scount = (String)cache.retrieve(key);
//如果缓存中不存在
if (Scount == null) {
//从非缓存中读取
Scount= = String.valueOf(DAOFactory.getMemberDAO().getNumberOfMembers());
//存入缓存
cache.store(key, Scount, DateUtil.MINUTE);
log.info("缓存中不存在,创建后存入");
}else{
log.info("从缓存中读取会员总数成功");
}
} else {
//当前缓存未启用,从数据库中直接读取
count = new Long(DAOFactory.getMemberDAO().getNumberOfMembers());
}文章出处:http://www.diybl.com/course/3_program/java/javajs/20071221/92766.html