第三部分:
Demo
一、对象缓存
1
、
Cache
操作类
import java.util.Date;
import com.opensymphony.oscache.base.NeedsRefreshException;
import com.opensymphony.oscache.general.GeneralCacheAdministrator;
public class BaseCache extends GeneralCacheAdministrator {
private int refreshPeriod; //过期时间(单位为秒);
private String keyPrefix; //关键字前缀字符;
private static final long serialVersionUID = -4397192926052141162L;
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);
throw e;
}
}
}
2
、
Cache
管理类
public class CacheManager {
private BaseCache newsCache;
private static CacheManager instance;
private static Object lock = new Object();
private CacheManager() {
//这个根据配置文件来,初始BaseCache而已;
newsCache = new BaseCache("news",120);
}
public static CacheManager getInstance(){
if (instance == null){
synchronized( lock ){
if (instance == null){
instance = new CacheManager();
}
}
}
return instance;
}
public void putUser(User news) { newsCache.put(news.getId()+"",news); }
public void removeUser(String newsID) { newsCache.remove(newsID); }
public User getUser(int newsID) {
try {
return (User) newsCache.get(newsID+"");
} catch (Exception e) {
System.out.println("getNews>>newsID["+newsID+"]>>"+e.getMessage());
User news = new User(newsID);
this.putUser(news);
return news;
}
}
public void removeAllNews() {
newsCache.removeAll();
}
}
3
、对象
Bean
public class User {
private int id;
private String name;
private String sex;
private int age;
private Date accessTime; public User(int id) {
super();
this.id = id;
this.accessTime = new Date(System.currentTimeMillis());
}
public String toString() {
return "User info is : id=" + id + " accessTime="
+ accessTime.toString();
}
public User(String name, String sex, int age) {
super();
this.name = name;
this.sex = sex;
this.age = age;
}
public User() {
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Date getAccessTime() {
return accessTime;
}
public void setAccessTime(Date accessTime) {
this.accessTime = accessTime;
}
}
4
、测试类
public class TestObjectCache {
public static void main(String[] args) {
CacheManager cm=CacheManager.getInstance();
TestObjectCache test=new TestObjectCache();
test.print(cm);
}
public void print(CacheManager cm){
User user=null;
for (int i = 0; i < 1000; i++) {
user=cm.getUser(100);
System.out.println("<<"+i+">>: "+user);
if(i==10){
//删除缓存id的对象
cm.removeUser(100+"");
}
if(i==20){
//删除所有缓存的对象
cm.removeAllNews();
}
// 睡眠部分
try {
Thread.sleep(30000);
} catch (Exception e) {
}
}
}
}
分享到:
相关推荐
Cache技术--OSCache JAVA开发者必须研究的cache的架构
oscache缓存技术入门实例
oscache.tld oscache.tld oscache.tld
oscache缓存技术,压缩包中有详细代码及步骤
描述了oscahce在JAVA开发中的应用和配置说明
Cache是一种用于提高系统响应速度、改善系统运行性能的技术。尤其是在Web应用中,通过缓存页面的输出结果,可以很显著的改善系统运行性能。 OSCache标记库由OpenSymphony设计,它是一种开创性的缓存方案,它提供了在...
oscache的简单介绍
缓存技术 oscache-2.3.2.jar包下载
Cache是一种用于提高系统响应速度、改善系统运行性能的技术。尤其是在Web应用中,通过缓存页面的输出结果,可以很显著的改善系统运行性能。 OSCache标记库由OpenSymphony设计,它是一种开创性的缓存方案,它提供了在...
javaweb做页面缓存常用,OSCache是一个工业级的J2EE缓存实现。OSCache不但能缓存java对象,还可以缓存页面,http请求和二进制内容,...通过应用OSCache,我们不但可以实现通常的Cache功能,还能够改善系统的稳定性。
oscache.properties 博文链接:https://xdjava.iteye.com/blog/1040936
oscache-2.1.jar oscache-2.1.jar
Cache是一种用于提高系统响应速度、改善系统运行性能的技术。尤其是在Web应用中,通过缓存页面的输出结果,可以很显著的改善系统运行性能。 OSCache标记库由OpenSymphony设计,它是一种开创性的缓存方案,它提供了在...
OSCache由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。OSCache是一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决...
OSCache学习例子 实例 很好的与j2ee结合
1、OSCache是什么? 2、OSCache的特点 3、有关“用OSCache进行缓存对象”的研究
OSCache标记库由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。OSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的...
OSCache标记库由OpenSymphony设计,它是一种开创性的缓存方案,它提供了在现有JSP页面之内实现内存缓存的功能。OSCache是个一个被广泛采用的高性能的J2EE缓存框架,OSCache还能应用于任何Java应用程序的普通的缓存...
使用oscache进行缓存,大大提高web系统运行效率
OSCache是OpenSymphony这个开源项目众多Projects中的一个。他是一个高效的J2EE缓存框架,能够很好的解决动态网站速度的问题。