快速业务通道

使用缓存构建更快的Web应用程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
blog = (BlogObject)blogCache.get(id);   } catch (CacheException ce) {    blog = null;   }   if (blog == null) {    blog = DatabaseManager.getBlog(id);    this.setBlog(     blog.getBlogId(),     blog.getAuthor(),     blog.getDate(),     blog.getTitle(),     blog.getContent()    );   }   return blog; }

使用缓存构建更快的Web应用程序(5)

时间:2011-07-08 IBM Kellen F. Bombardier

在清单 9 中,我使用一个数据库作为检索 blog 对象的替代机制。根据另一 种机制检索该对象时,应该将该对象设置为缓存,以便下一次检索可以直接从该 缓存获取这个对象。

如清单 10 所示,setBlog 方法将 blog 对象放在缓存中。这个方法比较简单 ,因为它只是使用传入的信息创建一个新的 blog 对象,然后将这个对象放在缓 存中。

清单 10. 通过 blog 管理器将 blog 对象放在缓存中

public boolean setBlog(int bId, String author, Date date, String title, String content) {   BlogObject blog = new BlogObject(bId, author, date, title, content);   try {    blogCache = JCS.getInstance(blogCacheRegion);    blogCache.put(bId, blog);    return true;   } catch (CacheException ce) {    return false;   } }

如清单 11 所示,cleanBlog 方法要么从缓存中清除一个指定的 blog,要么 从缓存中清除掉所有 blog。这个方法使用 JCS 的 remove 和 clear 方法来清除 缓存对象。

清单 11. 通过 blog 管理器从缓存中删除 blog 对象

public boolean cleanBlog(int blogId) {   try {    blogCache = JCS.getInstance(blogCacheRegion);    blogCache.remove(blogId);   } catch (CacheException ce) {    return false;   }   return true; } public boolean cleanBlog() {   try {    blogCache = JCS.getInstance(blogCacheRegion);    blogCache.clear();   } catch (CacheException ce) {    return false;   }   return true; }

前面的几个类展示了使用 JCS 缓存对象是很简单的。拥有对象管理器并使用 简单的对象表示之后,您就获得一种在 Web 应用程序中处理对象的简单但强大的 方法。

使用缓存构建更快的Web应用程序(6)

时间:2011-07-08 IBM Kellen F. Bombardier

缓存元数据

JCS 提供了更多方法,向应用程序添加缓存所用的方法只是其中的一小部分。 例如,它提供了收集缓存对象和缓存区域元数据的实用程序。您可以轻松检索以 下内容:

缓存键名称

创建缓存项的时间

缓存可以存在的最长时间

缓存过期时间

清单 12 中的例子显示如何检索缓存项的元数据:

清单 12. 检索缓存项的元数据

try {   JCSAdminBean admin = new JCSAdminBean();   LinkedList linkedList = admin.buildElementInfo(regionName);   ListIterator iterator = linkedList.listIterator();   while (iterator.hasNext()) {    CacheElementInfo info = (CacheElementInfo)iterator.next();    System.out.println("Key: " + info.getKey());    System.out.println("Creation Time: " + info.getCreateTime ());    System.out.println("Maximum Life (seconds): " + info.getMaxLifeSeconds());    System.out.println("Expires in (seconds): " + info.getExpiresInSeconds());   } } catch (Exception e) { }

缓存项的元数据很有用,但获取各个缓存区域的元数据也很有帮助。这个信息 让您知道缓存有多少数据,它们会进入哪个区域,包括缓存丢失、缓存提示和缓 存更新。清单 13 中的示

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号