- 浏览: 1068737 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (639)
- 服务器配置篇 (58)
- hibernate篇 (14)
- spring篇 (33)
- struts篇 (28)
- JS篇 (46)
- 其他技术篇 (46)
- 数据库集群配置 (6)
- JAVA基础相关 (48)
- 分布式框架HadHoop的应用 (2)
- FLEX篇 (8)
- SQLSERVER技术 (32)
- Android学习 (13)
- amchart学习笔记 (1)
- openfire+smark搭建即时通讯 (9)
- Linux学习 (18)
- Oracle数据库 (15)
- 网站优化技术 (12)
- mysql数据库 (2)
- 项目学习总结 (18)
- 工具类(JAVA) (12)
- 工具类(JS) (2)
- 设计模式 (10)
- Lucene学习 (24)
- EJB3学习 (6)
- Sphinx搜索引擎 (3)
- 工作中用到的软件小工具 (5)
- .NET (49)
- JAVA 连接SQLSERVER2008步骤 (1)
- MongoDB (19)
- Android手机开发 (3)
- Maven (6)
- vue (9)
- Shiro (4)
- mybatis (3)
- netty框架 (1)
- SpringCloud (3)
- spring-cloud (7)
- Git (1)
- dubbo (2)
- springboot (13)
- rocketmq (1)
- git学习 (2)
- kafka服务器 (2)
- linux (10)
- WEB系统辅助项目 (1)
- jenkins (2)
- docker (4)
- influxdb (3)
- python (2)
- nginx (1)
最新评论
-
jiangfuofu555:
这样数据量大,效率怎么样?
sqlserver 实现分页的前台代码 以及后台的sqlserver语句 -
w156445045:
博主请问下,如何做到实时的刷新呢,
另外我后台是Java 谢谢 ...
web 版本的汽车仪表盘,非常好看。还有各种图形 -
jackyin5918:
<transportConnector name=&qu ...
ActiveMQ的activemq.xml详细配置讲解 -
握着橄榄枝的人:
你这个不是spring1.x的吧
spring1.x使用AOP实例 -
xiaophai:
全乱套了!
openfire+spark搭建完美的及时通讯
第三部分: 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;
- }
- }
- }
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();
- }
- }
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;
- }
- }
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) {
- }
- }
- }
- }
发表评论
-
FreeMaker实现静态化技术(3)【标签的使用】
2010-08-27 15:14 1783写在ftl模板文件中的,类似JSP中的JSTL新的语法 1. ... -
FreeMaker实现静态化技术(2)【网页版本】
2010-08-27 14:21 17731.在WebRoot目录下新建一个templates文件夹,再 ... -
FreeMaker实现静态化技术(1)【Java版本】
2010-08-27 14:15 1923FreeMaker是一个优秀的模板引擎,负责将数据合并到模板中 ... -
OSCache缓存技术(8)【JSP页面从数据库取得数据缓存列子】
2010-08-27 11:15 1476index.jsp <%@ page language ... -
OSCache缓存技术(7)【整合LOG4J】
2010-08-27 10:49 14061.在项目中加入log4j的包 2.在classes中加入l ... -
大型网站性能优化的通用方法
2010-08-27 09:48 11471、HTML静态化其实大家都知道,效率最高、消耗最小的就是纯静 ... -
OSCache缓存技术(6)【实例】
2010-08-27 08:22 2280本实例将模仿一个JSP页面从数据库中取得一个LIST集合的数据 ... -
OSCache缓存技术(5)
2010-08-27 08:17 1670第四部分:小结及其引 ... -
OSCache缓存技术(3)
2010-08-27 08:15 1154三、OSCache的基本用法(缓存JSP页面中部分) (一) ... -
OSCache缓存技术(2)
2010-08-27 08:13 1560第二部分: OSCache 使用指南 一、下载安装 ... -
OSCache缓存技术(1)
2010-08-27 08:12 1387一、简介 Cache 是一种用于提高系统响应速度 、改善系 ...
相关推荐
**osCache缓存技术详解** osCache是一款广泛应用于Java应用程序中的开源缓存解决方案,由OpenSymphony团队开发。它提供了一种高效、可扩展的方式来管理应用程序中的数据缓存,从而提高系统的性能和响应速度。...
**oscache缓存技术应用** **一、OSCache简介与应用** Cache技术是提升系统响应速度和性能的关键手段,尤其在Web应用中,通过缓存页面的输出结果,能够显著提高系统性能。OSCache是由OpenSymphony开发的一种创新...
4. 缓存同步:在多线程或多服务器环境下,osCache提供了一套机制来确保缓存数据的一致性和完整性。 三、osCache配置 osCache的配置主要通过XML文件完成,包括缓存配置、更新策略、缓存监听器等。例如: ```xml ...
在压缩包中的文件,如`servlet+天气预报+缓存技术`,可能包含了一个完整的示例项目,包括了上述步骤的代码实现。你可以直接运行该项目,通过查看和分析代码来深入理解OsCache的使用方式。 总结来说,OsCache是一个...
以上就是OSCache缓存技术的基本介绍,通过理解并熟练掌握OSCache,开发者能够有效地提升应用性能,降低数据库压力,为用户带来更流畅的体验。在实践中,还需要根据具体项目需求进行优化和调整,以达到最佳的缓存效果...
- 在Web应用中,可以利用OSCache缓存JSP页面、EJB会话bean、Hibernate查询结果等,减少服务器负载。 - 在服务端,可以缓存经常访问的API响应,提升响应速度,改善用户体验。 - 结合Spring框架,可以通过AOP(面向...
**基于OSCache的页面缓存技术详解** 在Web应用程序中,页面缓存是一种常见的优化策略,它可以显著提高网站性能,减少服务器压力,并提供更快的用户体验。OSCache是Apache软件基金会的开源项目,它是一个高性能、...
Cache是一种用于提高系统响应速度、改善系统运行性能的技术。尤其是在Web应用中,通过缓存页面的输出...OSCache是个一个被广泛采用的高性能的J2EE缓存框架,OSCache还能应用于任何Java应用程序的普通的缓存解决方案。
4. **缓存同步**:在多线程或多服务器环境下,OSCache 提供了缓存同步机制,确保了在并发操作下的数据一致性。 5. **缓存分区**:OSCache 支持将缓存划分为多个分区,每个分区可以有不同的配置,这有助于管理和优化...
缓存是一种存储技术,用于临时存储频繁访问的数据,以便快速检索。在Web开发中,JSP页面缓存可以减少服务器对数据库的查询次数,从而减少服务器负载和提高用户访问速度。 OSCache 提供了对Java对象的缓存管理功能,...
缓存技术 oscache-2.3.2.jar包下载
- **缓存**:缓存是一种技术,用于临时存储频繁访问的数据,以便快速响应用户的请求,减少系统处理时间和资源消耗。 - **Java缓存框架**:在Java环境中,缓存框架如osCache提供了一套完整的解决方案,帮助开发者...
在IT领域中,缓存技术是提高系统性能的关键一环,尤其是在高并发、大数据量的应用场景下。oscache,全称OpenSymphony OSCache,是一个广泛使用的开源Java对象缓存框架,它允许开发者将数据存储在内存中,以减少对...
**osCache - JSP缓存技术详解** osCache是由OpenSymphony开源组织开发的一个高效、易用的缓存解决方案,特别适用于Java Web应用程序,尤其是JSP页面。它为开发者提供了一种在JSP页面内部实现快速内存缓存的机制,...
为了提高系统性能,通常会采用缓存技术来减少对数据库的直接访问,而OSCache就是一种广泛使用的开源缓存解决方案。本实例将介绍如何结合Hibernate和OSCache实现二级缓存,以优化应用程序的性能。 一级缓存是...
配置OScache主要包括设置缓存策略、缓存范围以及缓存失效策略等。 【Freemarker模板】 Freemarker是一个基于模板的Java模板引擎,用于生成动态内容。它与SpringMVC配合使用,可以方便地生成HTML页面。开发者编写...
4. **使用OSCache**:将需要缓存的对象放入OSCache,例如: ```java Object object = ...; Cache cache = CacheManager.getInstance().getCache("myCache"); cache.put(new Element("key", object)); ``` 5. *...
- **缓存**: 缓存是一种存储技术,用于暂时存储常用数据,以便快速访问。在osCache中,缓存以“区域”(Cache Regions)的形式组织,每个区域可以存储一组相关的数据。 - **缓存项**: 存储在缓存中的单个数据单元...
在现代Web开发中,缓存技术是提升系统响应速度、优化用户体验的关键策略之一。Oscache框架作为一种高效、灵活的缓存解决方案,在Java Web应用,尤其是JSP环境中,提供了强大的缓存管理功能。本文将深入探讨Oscache...
【基于OSCache的页面缓存】是Web应用中一种有效的性能优化策略,它涉及到缓存技术、分布式系统以及系统开发等多个领域。OSCache是开源的Java缓存框架,能够帮助开发者实现高效的页面和数据缓存,从而降低数据库的...