`
kongshanxuelin
  • 浏览: 925426 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

通用网站缓存解决方案(OSCache)

阅读更多

在我们开发网站中,必可避免需要将很多经常使用的数据进行缓存处理,这里有一个非常好的开源框架介绍给大家OSCache,而且很好用,还支持集群,强烈推荐大家使用,使用步骤:

  1. 定义一个标识接口,即实现他的类用来做缓存处理,代码如下
    /**
     * @author Administrator
     * 缓存对象的标识接口
     */
    public interface IOSCachable{
    	public String toString();
    }
     
  2. 缓存操作类
    	GeneralCacheAdministrator admin;
    
    	public OSCache(){
    		admin = new GeneralCacheAdministrator();
    	}
    	
    	public OSCache(int size) {
    		admin = new GeneralCacheAdministrator();
    		admin.setCacheCapacity(size);
    	}
    
    	public void put(String key, String value) {
    		this.admin.putInCache(key,value);
    	}
    	
    	public void put(String key,IOSCachable obj){
    		this.admin.putInCache(key,obj);
    	}
    	
    	public void put(String key,String value,String[] groups){
    		this.admin.putInCache(key,value,groups);
    	}
    	
    	public void put(String key,IOSCachable obj,String[] groups){
    		this.admin.putInCache(key,obj,groups);
    	}
    	
    	
    	public IOSCachable get(String key,int myRefreshPeriod){
    		try{
    			return (IOSCachable)this.admin.getFromCache(key,myRefreshPeriod);
    		}catch(NeedsRefreshException ex){
    			this.admin.cancelUpdate(key);
    			return null;
    		}
    	}
    
    	public Object get(String key){
    		try{
    			return this.admin.getFromCache(key);
    		}catch(NeedsRefreshException ex){
    			this.admin.cancelUpdate(key);
    			return null;
    		}
    	}
    	
    	public void flushAll(){
    		this.admin.flushAll();
    	}
  3. 测试代码如下:

 

//缓存对象
		for(int i=0;i<5;i++){
			objCmu.put("obj"+i,new CacheBeanTest("myname","ii"+i));
		}
//读取缓存
		System.out.println(objCmu.get("obj3"));
		System.out.println(objCmu.get("obj4"));
		System.out.println(objCmu.get("obj7"));

 OSCache几个常用的配置参数说明:

#最近最常使用算法 cache.algorithm=com.opensymphony.oscache.base.algorithm.LRUCache
#先近先出使用算法
cache.algorithm=com.opensymphony.oscache.base.algorithm.FIFOCache
#缓存大小
cache.capacity=1000
 
8
2
分享到:
评论
7 楼 lveyo 2008-11-19  
OSCache在页面缓存方面比较强大,EHCache对对象缓存比较好。
LZ介绍的是缓存的最基本的应用。
6 楼 aaronluo 2008-11-18  
和HashMap有区别吗
5 楼 guazi 2008-10-20  
太粗略了把。要讲就讲清楚一点。
4 楼 grandboy 2008-10-20  
楼主,能不能把相关的源码全给出来呀? 谢谢。我也用过这个,就是不知道是不是最合理, 是不是和楼主用法的细节一样。还有我一直没有搞懂他是怎么支持集群的? 能不能具体讲一下原理?非常感谢。
3 楼 linzy410 2008-10-19  
习惯用memcached了,
2 楼 lovpg 2008-10-17  
搞这么麻烦干嘛?系统定时wget一下不就静态化了?而且是系统与服务器的通信,开销要比现在的小多了!
1 楼 unika_ly12 2008-10-17  
恩,看起来不错。

相关推荐

    oscache文档

    作为一种广泛应用且高性能的J2EE缓存框架,OSCache能够应用于任何Java应用程序中作为通用缓存解决方案。 **主要特点:** 1. **缓存对象多样性**:不受限制地缓存部分JSP页面或HTTP请求,任何Java对象均可缓存。 2....

    oscache所需jar包

    `osCache`是一个广泛使用的Java缓存解决方案,它为应用程序提供了内存缓存功能,能够有效地减少对数据库的访问,从而提升整体系统的响应速度。`osCache`的核心库依赖于`commons-logging.jar`,这是一个通用的日志...

    springMvc+Mybatis+spring3.0+oscache配置文件

    oscache是Java缓存解决方案,可以提高应用性能,减少数据库负载。配置oscache时,你需要关注: 1. **Cache Manager**:配置缓存管理器,管理缓存区域和策略。 2. **Cache Regions**:定义不同的缓存区域,根据需求...

    Oscache_入门

    - **通用性**:除了Web应用外,Oscache还可以应用于任何Java应用程序,作为一种通用的缓存解决方案。 #### 二、Oscache的优势 Oscache具有多项优势,使其成为众多开发者首选的缓存工具。 ##### (一)Oscache的...

    Java缓存讨论.pdf

    这使得OSCache成为Java应用程序通用缓存解决方案的首选。 JCACHE,即JSR 107,是Java临时内存缓存的标准规范,旨在规定如何在内存中缓存Java对象,包括创建、共享、失效等管理方式。它可以优化如JSP页面中频繁读取...

    Java中各类Cache机制实现解决方案

    最初是为了配合Hibernate 2.1版本而设计的,但现在已经被许多项目采用作为通用的缓存解决方案。EHCache支持多种缓存模式,包括本地缓存、分布式缓存等,并且提供了丰富的配置选项来满足不同场景的需求。它的特点还...

    缓存技术详解

    1. **非Java实现的通用缓存产品**:如Redis、Memcached等,它们提供了高性能的缓存解决方案,适用于多种编程语言和平台。 2. **基于AJAX技术的浏览器缓存**:利用客户端浏览器的缓存机制,减少数据传输量,提高Web...

    00.2、知识点1

    - 设计模式是解决软件设计中常见问题的通用解决方案,如单例模式、工厂模式、装饰器模式等。熟悉设计模式能提高代码的可读性和可维护性。 4. **高并发架构与处理方案**: - 高并发架构涉及负载均衡、缓存、数据库...

Global site tag (gtag.js) - Google Analytics