当数据库中的东西改变了以后,缓存中的相应数据应该被删除,确切地说应该尽量少地删除。比如你要发一个帖子,什么数据改变了,论坛的帖子数,论坛的最后更新日期,论坛的帖子列表也得重新从数据库中得到。
注意,最后一个操作看起来很费力气,其实不然。这个操作并非对所有用户都有影响,是的,它只影响了第一个访问该论坛的用户。并且帖子列表是分页取得的,所以并不要多少磁盘操作。下面把整个流程好好整理一下。
client代码就这两行
forum=forumFactory.getForum(2L);.
forum.addThread(forumFactory.createThread(newMessage););;
Jive是在forum.addThread()时才真正往数据库里放呢
forum(ForumProxy)检测完权限后,dbforum(DbForum)就要执行addThread操作了:
public void addThread(ForumThread thread); {
boolean abortTransaction = false;
// 1 更新thread,因为thread可能已经在数据库中了(这是设计中最令人恼火的地方,你必须考虑你的每一段代码在任何输入条件下,都应该分别怎么做)
// Now, insert the thread into the database. Depending on if this
//
//你看,又来了吧! method was called internally or not, the thread object might
// be wrapped by a proxy or not.
if (thread instanceof ForumThreadProxy); {
ForumThreadProxy proxyThread = (ForumThreadProxy);thread;
DbForumThread dbThread = (DbForumThread);proxyThread.getProxiedForumThread();;
dbThread.insertIntoDb(this, con);;
}
else {
DbForumThread dbThread = (DbForumThread);thread;
dbThread.insertIntoDb(this, con);;
}
}
catch(Exception e); {
e.printStackTrace();;
abortTransaction = true;
}
finally {
ConnectionManager.closeTransactionConnection(con, abortTransaction);;
}
// Thread count has changed, so remove the forum from cache.
factory.cacheManager.forumCache.remove(this.id);;
//这个帖子作者的缓存也得改!
// Expire the userMessageCountCache if the root message was not posted
// anonymously.
ForumMessage message = thread.getRootMessage();;
if (!message.isAnonymous();); {
factory.userMessageCountCache.remove(message.getUser();.getID(););;
}
}
分享到:
相关推荐
JAVA缓存研究之剖析Jive的缓存机制JAVA缓存研究之剖析Jive的缓存机制
- 当帖子数据发生变更时,如新增或删除帖子,需要更新缓存中的数据; - 更新操作可能触发缓存清理机制,以释放空间供新数据使用。 #### 五、结论 Jive缓存机制的成功之处在于其细致的设计与高效的实现。通过合理...
### Jive(Jdon)安装详细指导 #### 一、前言 Jive是一款知名的开源社区软件,被广泛应用于企业内部沟通平台以及外部客户互动平台。本文档将详细讲解如何在Linux环境下安装配置Jive,包括数据库设置、Tomcat服务器...
jive论坛源码,jive项目源码,jive源码,Jive是国外一个非常著名的BBS程序,完全开放源码.jive论坛源码,jive项目源码,jive源码,Jive是国外一个非常著名的BBS程序,完全开放源码.jive论坛源码,jive项目源码,jive源码,...
Jive论坛的优点 是由于采用缓冲机制,可以承受巨大访问量,同时能保持快速反应,在国外站点采用很多。 主要功能如下: 快速的缓存功能,将经常访问的帖子保存在内存中,实现快速访问, 可通过Web管理界面动态...
Jive论坛的优点 是由于采用缓冲机制,可以承受巨大访问量,同时能保持快速反应,在国外站点采用很多。 主要功能如下: 快速的缓存功能,将经常访问的帖子保存在内存中,实现快速访问, 可通过Web管理界面动态监测...
《Jive Java版源码深度解析与设计模式探讨》 Jive是一款著名的社交软件平台,其Java版本的源码对于开发者来说,是一份极其宝贵的参考资料。深入研究Jive的源码,不仅可以帮助我们理解大型社交系统的架构设计,也能...
在学习Jive时,你需要掌握以下几个关键知识点: 1. **Java Web开发基础**:Jive是建立在Java Web技术之上的,因此,熟悉Servlets、JSP、JSTL等基础是非常必要的。同时,理解MVC设计模式和Spring框架对Jive的开发...
《Jive论坛开源源码深度解析》 Jive论坛,作为一个早期且经典的开源社区平台,对许多Java开发者来说,无疑是一份宝贵的参考资料。在Jive 1.3之后,其源码不再对外公开,但1.2版本的开源源码仍能为我们揭示社区软件...
在性能优化方面,Jive源代码展示了缓存机制的运用,如使用Ehcache或Redis进行数据缓存,减少数据库查询的次数,提高系统响应速度。同时,Jive还可能利用负载均衡和分布式计算技术,如Hadoop或Spark,来处理大规模...
5. **缓存技术**:为了提高性能,论坛可能会采用缓存机制,如 Ehcache 或 Memcached,来存储热门数据。 6. **邮件服务**:论坛系统通常会集成邮件服务,用于发送注册验证邮件、提醒通知等。 7. **搜索功能**:可能...
在JIVE中,可能用于管理全局配置或缓存服务。 2. **工厂模式**:用于创建对象,隐藏了对象创建的复杂性,使得代码更易于维护。例如,论坛中不同类型的帖子(如问题、回答、评论)可能由不同的工厂类生成。 3. **...
java jive缓存机制源码
<br> 权限设计 1 权限系统概要 2 关于权限设计方面的问题 3 关于用户角色权限管理一点想法 4 关于权限系统的设计 <br> 缓存系统 1 剖析Jive的缓存机制 ...
《深入剖析Jive论坛原代码:JAVA设计模式的实践与理解》 Jive论坛是一款知名的社区软件,其原代码开放给开发者,为学习和研究JAVA设计模式提供了宝贵的资源。通过研究Jive论坛的源代码,我们可以深入了解JAVA在大型...
本文将对Jive 2.5版本进行全面剖析,涵盖其功能需求、设计模式、安全管理机制以及缓存策略。 ### 1. Jive功能需求 Jive论坛的核心功能包括: 1. **用户管理**:支持注册、登录、用户资料管理,以及权限设置,确保...
《深入剖析Jive 2.5源代码:安装与研究指南》 Jive是一款功能强大的社交网络软件,它为企业提供了一个全面的协作平台,让用户能够进行沟通、分享知识和协同工作。在这里,我们重点关注的是Jive 2.5版本的源代码。源...
jive forums 设计模式 Version: 3.2.9 Below is a list of known issues affecting this release of Jive Forums (3.2.9).
在学习Jive时,你需要掌握以下关键知识点: 1. Java基础:包括类、对象、继承、多态、异常处理、集合框架等。 2. Web开发基础:理解HTTP协议,熟悉Servlet和JSP的工作原理。 3. 数据库连接:Jive通常与关系型数据库...