`
javaeyetodj
  • 浏览: 431419 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

oscache 对象缓存

阅读更多
  1. 一、对象缓存   
  2. 1、Cache操作类   
  3. import java.util.Date;   
  4. import com.opensymphony.oscache.base.NeedsRefreshException;   
  5. import com.opensymphony.oscache.general.GeneralCacheAdministrator;   
  6. public class BaseCache extends GeneralCacheAdministrator {       
  7.     private int refreshPeriod; //过期时间(单位为秒);           
  8.     private String keyPrefix; //关键字前缀字符;               
  9.     private static final long serialVersionUID = -4397192926052141162L;          
  10.     public BaseCache(String keyPrefix,int refreshPeriod){      
  11.         super();      
  12.         this.keyPrefix = keyPrefix;      
  13.         this.refreshPeriod = refreshPeriod;      
  14.     }      
  15.     //添加被缓存的对象;      
  16.     public void put(String key,Object value){      
  17.         this.putInCache(this.keyPrefix+"_"+key,value);      
  18.     }      
  19.     //删除被缓存的对象;      
  20.     public void remove(String key){      
  21.         this.flushEntry(this.keyPrefix+"_"+key);      
  22.     }      
  23.     //删除所有被缓存的对象;      
  24.     public void removeAll(Date date){      
  25.         this.flushAll(date);      
  26.     }             
  27.     public void removeAll(){      
  28.         this.flushAll();      
  29.     }      
  30.     //获取被缓存的对象;      
  31.     public Object get(String key) throws Exception{      
  32.         try{      
  33.             returnthis.getFromCache(this.keyPrefix+"_"+key,this.refreshPeriod);      
  34.         } catch (NeedsRefreshException e) {      
  35.             this.cancelUpdate(this.keyPrefix+"_"+key);      
  36.             throw e;      
  37.         }        
  38.     }              
  39. }      
  40.     
  41. 2、Cache管理类   
  42. public class CacheManager {          
  43.     private BaseCache newsCache;              
  44.     private static CacheManager instance;      
  45.     private static Object lock = new Object();             
  46.     private CacheManager() {      
  47.         //这个根据配置文件来,初始BaseCache而已;      
  48.         newsCache = new BaseCache("news",120);           
  49.     }              
  50.     public static CacheManager getInstance(){      
  51.         if (instance == null){      
  52.             synchronized( lock ){      
  53.                 if (instance == null){      
  54.                     instance = new CacheManager();      
  55.                 }      
  56.             }      
  57.         }      
  58.         return instance;      
  59.     }         
  60.     public void putUser(User news) { newsCache.put(news.getId()+"",news);     }         
  61.     public void removeUser(String newsID) {  newsCache.remove(newsID);      }         
  62.     public User getUser(int newsID) {      
  63.         try {      
  64.             return (User) newsCache.get(newsID+"");      
  65.         } catch (Exception e) {      
  66.             System.out.println("getNews>>newsID["+newsID+"]>>"+e.getMessage());      
  67.             User news = new User(newsID);      
  68.             this.putUser(news);      
  69.             return news;      
  70.         }      
  71.     }         
  72.     public void removeAllNews() {      
  73.         newsCache.removeAll();      
  74.     }         
  75. }   
  76.   
  77. 3、对象Bean   
  78. public class User {   
  79.     private int id;   
  80.     private String name;   
  81.     private String sex;   
  82.     private int age;   
  83.     private Date accessTime; public User(int id) {   
  84.        super();   
  85.        this.id = id;   
  86.        this.accessTime = new Date(System.currentTimeMillis());   
  87.     }   
  88.     public String toString() {   
  89.        return "User info is : id=" + id + "  accessTime="  
  90.               + accessTime.toString();   
  91.     }   
  92.     public User(String name, String sex, int age) {   
  93.        super();   
  94.        this.name = name;   
  95.        this.sex = sex;   
  96.        this.age = age;   
  97.     }   
  98.     public User() {   
  99.     }   
  100.     public int getAge() {   
  101.        return age;   
  102.     }   
  103.     public void setAge(int age) {   
  104.        this.age = age;   
  105.     }   
  106.     public String getName() {   
  107.        return name;   
  108.     }   
  109.     public void setName(String name) {   
  110.        this.name = name;   
  111.     }   
  112.     public String getSex() {   
  113.        return sex;   
  114.     }   
  115.     public void setSex(String sex) {   
  116.        this.sex = sex;   
  117.     }   
  118.     public int getId() {   
  119.        return id;   
  120.     }   
  121.     public void setId(int id) {   
  122.        this.id = id;   
  123.     }   
  124.     public Date getAccessTime() {   
  125.        return accessTime;   
  126.     }   
  127.     public void setAccessTime(Date accessTime) {   
  128.        this.accessTime = accessTime;   
  129.     }   
  130. }   
  131.     
  132. 4、测试类   
  133. public class TestObjectCache {   
  134.     public static void main(String[] args) {   
  135.        CacheManager cm=CacheManager.getInstance();   
  136.          
  137.        TestObjectCache test=new TestObjectCache();   
  138.        test.print(cm);   
  139.     }   
  140.       
  141.     public void print(CacheManager cm){   
  142.        User user=null;   
  143.        for (int i = 0; i < 1000; i++) {   
  144.            user=cm.getUser(100);   
  145.            System.out.println("<<"+i+">>: "+user);            
  146.            if(i==10){   
  147.               //删除缓存id的对象   
  148.               cm.removeUser(100+"");   
  149.            }            
  150.            if(i==20){   
  151.               //删除所有缓存的对象   
  152.               cm.removeAllNews();   
  153.            }            
  154.            // 睡眠部分   
  155.            try {   
  156.               Thread.sleep(30000);   
  157.            } catch (Exception e) {   
  158.            }   
  159.        }   
  160.     }   
  161. }  
分享到:
评论

相关推荐

    oscache对象缓存

    《oscache对象缓存详解》 在IT领域中,缓存技术是提高系统性能的关键一环,尤其是在高并发、大数据量的应用场景下。oscache,全称OpenSymphony OSCache,是一个广泛使用的开源Java对象缓存框架,它允许开发者将数据...

    用OSCache进行缓存对象

    1、OSCache是什么? 2、OSCache的特点 3、有关“用OSCache进行缓存对象”的研究

    OsCache缓存框架使用示例

    3. 创建缓存对象:在需要缓存数据的地方,创建OsCache实例并指定缓存名称。例如,可以创建一个名为`weatherCache`的缓存,用于存储天气信息。 4. 存储数据:当获取到新的天气信息时,将其存储到OsCache中,键为城市...

    oscache缓存技术

    osCache的核心功能包括缓存对象、缓存区域管理、缓存过期策略以及支持分布式缓存等。 ### 1. osCache的基本概念 - **缓存对象**:osCache允许开发者将任何Java对象存储到缓存中,以便后续请求可以直接从内存中获取...

    OSCache 缓存对象的总结

    OSCache 是一个开源的缓存解决方案,主要用于Java应用程序,它提供了高效的对象缓存功能,能够显著提高应用的性能。在本文中,我们将深入探讨OSCache的核心特性、工作原理以及如何在实际项目中有效利用它。 OSCache...

    SSM的整合+OScache页面缓存+freemark模板

    OScache是Java的一个开源缓存框架,它可以用来缓存任何Java对象,包括页面。在SSM项目中引入OScache,可以在服务器端对经常访问的页面进行缓存,提高页面加载速度,减轻服务器压力。配置OScache主要包括设置缓存策略...

    oscache-java缓存框架

    - **对象缓存**:osCache允许开发者将Java对象直接放入缓存,便于快速检索。 - **内存管理**:自动管理内存,当内存不足时,可基于LRU(Least Recently Used)策略进行对象的淘汰。 - **持久化**:支持缓存数据的...

    osCache,缓存

    它由OpenSymphony开源组织开发,旨在提供内存中的对象缓存服务,以提升应用性能并减轻数据库负载。osCache的核心功能是将频繁访问的数据存储在内存中,避免了反复从数据库读取,从而显著提高了应用程序的响应速度。 ...

    oscache缓存技术入门实例

    它支持缓存对象、集合、Map等各种数据类型,并提供了缓存过期、刷新策略等高级特性。 二、osCache工作原理 1. 数据存储:osCache将数据存储在内存中的缓存区域,这些区域可以被细分为多个缓存,每个缓存有自己的...

    OSCache缓存技术(6)【实例】

    OSCache支持对象级别的缓存,也就是说,它可以缓存任何Java对象,并提供了自动过期和更新策略,确保数据的实时性。 在OSCache中,缓存管理主要通过`Cache`接口实现。开发者可以创建并初始化一个`Cache`实例,然后将...

    oscache缓存配置

    osCache的核心功能是提供了一个内存中的对象缓存系统,通过将常用数据暂存到内存中,避免了频繁的数据库查询,从而显著提升应用程序的性能。 在开始配置osCache之前,我们需要了解其基本概念和工作原理。osCache...

    oscache-JSP缓存

    osCache是一个基于Java的缓存框架,主要针对JSP页面和Java对象的缓存。它通过将常用的数据存储在内存中,避免了频繁的数据库查询或计算,从而降低了服务器负载,提高了响应速度。osCache支持缓存页面片段、整个页面...

    OSCache缓存框架的简单用法

    OSCache的核心特性包括缓存对象的自动过期、内存管理策略、缓存同步以及丰富的API。 **2. 安装与依赖** 首先,你需要将OSCache的JAR文件添加到项目的类路径中。你可以从OpenSymphony的官方网站或者Maven仓库下载...

    OSCache缓存jsp例子

    OSCache 提供了对Java对象的缓存管理功能,包括缓存对象的存储、检索、更新和过期策略等。它支持多种缓存策略,如LRU(Least Recently Used)最近最少使用、FIFO(First In First Out)先进先出等。在JSP页面缓存中...

    oscache缓存

    osCache是Java平台上的一个高效的缓存解决方案,主要用于在应用程序中缓存数据,以提高性能和减少数据库的负载。这个工具特别适用于那些需要频繁访问但更新不频繁的数据,例如经常查询但很少更改的数据库记录。...

    一个OSCache缓存技术的关键zip包

    OSCache 是一款开源的缓存解决方案,主要用于Java应用程序,它能显著提高应用性能,通过缓存数据、对象和查询结果来减少对数据库的访问。这个关键的zip包包含了一些核心的OSCache组件和相关的文档,下面我们将深入...

    Hibernate OSCache缓存

    **Hibernate OSCache缓存详解** Hibernate 是一个流行的Java ORM(对象关系映射)框架,它允许开发者以面向对象的方式操作数据库。为了提高性能,Hibernate 提供了缓存机制,其中 OSCache 是一种广泛使用的二级缓存...

    hibernate+oscache实现二级缓存实例

    为了提高系统性能,通常会采用缓存技术来减少对数据库的直接访问,而OSCache就是一种广泛使用的开源缓存解决方案。本实例将介绍如何结合Hibernate和OSCache实现二级缓存,以优化应用程序的性能。 一级缓存是...

Global site tag (gtag.js) - Google Analytics