您的位置:首页 > 其它

Lucene用到的oscache,记录下来

2012-05-17 08:40 330 查看
Lucene用到的oscache,记录下来

操作缓存类

package com.jq.util;

import java.util.Date;

import com.opensymphony.oscache.base.CacheEntry;

import com.opensymphony.oscache.base.EntryRefreshPolicy;

import com.opensymphony.oscache.base.NeedsRefreshException;

import com.opensymphony.oscache.general.GeneralCacheAdministrator;

/**

* @author

*/

public class BaseCache extends GeneralCacheAdministrator {

// 过期时间(单位为秒);

private int refreshPeriod;

// 关键字前缀字符;

private String keyPrefix;

private static final long serialVersionUID = -5437192926052145345L;

public BaseCache(String keyPrefix, int refreshPeriod) {

super();

this.keyPrefix = keyPrefix;

this.refreshPeriod = refreshPeriod;

}

/**

* 添加被缓存的对象;

*/

public void put(String key, Object value) {

this.putInCache(this.keyPrefix + "_" + key, value);

}

/**

* 删除被缓存的对象;

*/

public void remove(String key) {

this.flushEntry(this.keyPrefix + "_" + key);

}

/**

* 删除所有被缓存的对象;

*/

public void removeAll(Date date) {

this.flushAll(date);

}

public void removeAll() {

this.flushAll();

}

/**

* 获取被缓存的对象;

*/

public Object get(String key) throws Exception {

try {

return this.getFromCache(this.keyPrefix + "_" + key,

this.refreshPeriod);

} catch (NeedsRefreshException e) {

this.cancelUpdate(this.keyPrefix + "_" + key);

return null;

}

}

/**

*

* @param key

* @param refreshPeriod

* @return 被缓存的对象

* @throws Exception

*/

public Object get(String key, int refreshPeriod) throws Exception {

try {

return this.getFromCache(this.keyPrefix + "_" + key, refreshPeriod);

} catch (NeedsRefreshException e) {

this.cancelUpdate(this.keyPrefix + "_" + key);

return null;

}

}

}

lucene 操作oscache

package com.jq.util;

public class LuceneCache {

private static BaseCache luceneCache = null;

private static String keyPrefix = "lucenecache";

public static int times = 5;//单位秒

public static BaseCache getInstance() {

if (luceneCache == null) {

luceneCache = new BaseCache(keyPrefix, times);

}

return luceneCache;

}

public static void main(String[] args) {

luceneCache = getInstance();

luceneCache.put("nihao", "你好");

try {

System.out.println(luceneCache.get("nihao"));

Thread.sleep(4000);

System.out.println(luceneCache.get("nihao"));

System.out.println(luceneCache.get("1"));

} catch (Exception e) {

e.printStackTrace();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐