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

jive发贴时,缓存是如何删除的?

阅读更多
当数据库中的东西改变了以后,缓存中的相应数据应该被删除,确切地说应该尽量少地删除。比如你要发一个帖子,什么数据改变了,论坛的帖子数,论坛的最后更新日期,论坛的帖子列表也得重新从数据库中得到。
注意,最后一个操作看起来很费力气,其实不然。这个操作并非对所有用户都有影响,是的,它只影响了第一个访问该论坛的用户。并且帖子列表是分页取得的,所以并不要多少磁盘操作。下面把整个流程好好整理一下。
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的缓存机制JAVA缓存研究之剖析Jive的缓存机制

    缓存机制(Jive缓存机制的实现)

    - 当帖子数据发生变更时,如新增或删除帖子,需要更新缓存中的数据; - 更新操作可能触发缓存清理机制,以释放空间供新数据使用。 #### 五、结论 Jive缓存机制的成功之处在于其细致的设计与高效的实现。通过合理...

    Jive的安装指导。

    ### Jive(Jdon)安装详细指导 #### 一、前言 Jive是一款知名的开源社区软件,被广泛应用于企业内部沟通平台以及外部客户互动平台。本文档将详细讲解如何在Linux环境下安装配置Jive,包括数据库设置、Tomcat服务器...

    jive论坛源码,jive项目源码,jive源码

    jive论坛源码,jive项目源码,jive源码,Jive是国外一个非常著名的BBS程序,完全开放源码.jive论坛源码,jive项目源码,jive源码,Jive是国外一个非常著名的BBS程序,完全开放源码.jive论坛源码,jive项目源码,jive源码,...

    Jive论坛1.2.4版

    Jive论坛的优点 是由于采用缓冲机制,可以承受巨大访问量,同时能保持快速反应,在国外站点采用很多。 主要功能如下: 快速的缓存功能,将经常访问的帖子保存在内存中,实现快速访问, 可通过Web管理界面动态...

    Jive论坛源码下载

    Jive论坛的优点 是由于采用缓冲机制,可以承受巨大访问量,同时能保持快速反应,在国外站点采用很多。 主要功能如下: 快速的缓存功能,将经常访问的帖子保存在内存中,实现快速访问, 可通过Web管理界面动态监测...

    Jive java版源码

    《Jive Java版源码深度解析与设计模式探讨》 Jive是一款著名的社交软件平台,其Java版本的源码对于开发者来说,是一份极其宝贵的参考资料。深入研究Jive的源码,不仅可以帮助我们理解大型社交系统的架构设计,也能...

    java学习必学系统--jive

    在学习Jive时,你需要掌握以下几个关键知识点: 1. **Java Web开发基础**:Jive是建立在Java Web技术之上的,因此,熟悉Servlets、JSP、JSTL等基础是非常必要的。同时,理解MVC设计模式和Spring框架对Jive的开发...

    最早最经典的Jive论坛开源 源码

    《Jive论坛开源源码深度解析》 Jive论坛,作为一个早期且经典的开源社区平台,对许多Java开发者来说,无疑是一份宝贵的参考资料。在Jive 1.3之后,其源码不再对外公开,但1.2版本的开源源码仍能为我们揭示社区软件...

    Jive源代码.zip

    在性能优化方面,Jive源代码展示了缓存机制的运用,如使用Ehcache或Redis进行数据缓存,减少数据库查询的次数,提高系统响应速度。同时,Jive还可能利用负载均衡和分布式计算技术,如Hadoop或Spark,来处理大规模...

    学习JavaEE的两个著名工程PetStore和Jive论坛二合一

    5. **缓存技术**:为了提高性能,论坛可能会采用缓存机制,如 Ehcache 或 Memcached,来存储热门数据。 6. **邮件服务**:论坛系统通常会集成邮件服务,用于发送注册验证邮件、提醒通知等。 7. **搜索功能**:可能...

    JIVE论坛与设计模式

    在JIVE中,可能用于管理全局配置或缓存服务。 2. **工厂模式**:用于创建对象,隐藏了对象创建的复杂性,使得代码更易于维护。例如,论坛中不同类型的帖子(如问题、回答、评论)可能由不同的工厂类生成。 3. **...

    jive源码

    java jive缓存机制源码

    jive.chm

    <br> 权限设计 1 权限系统概要 2 关于权限设计方面的问题 3 关于用户角色权限管理一点想法 4 关于权限系统的设计 <br> 缓存系统 1 剖析Jive的缓存机制 ...

    Jive论坛原代码.rar

    《深入剖析Jive论坛原代码:JAVA设计模式的实践与理解》 Jive论坛是一款知名的社区软件,其原代码开放给开发者,为学习和研究JAVA设计模式提供了宝贵的资源。通过研究Jive论坛的源代码,我们可以深入了解JAVA在大型...

    Jive论坛系统完整分析.doc

    本文将对Jive 2.5版本进行全面剖析,涵盖其功能需求、设计模式、安全管理机制以及缓存策略。 ### 1. Jive功能需求 Jive论坛的核心功能包括: 1. **用户管理**:支持注册、登录、用户资料管理,以及权限设置,确保...

    jive 2.5 源代码

    《深入剖析Jive 2.5源代码:安装与研究指南》 Jive是一款功能强大的社交网络软件,它为企业提供了一个全面的协作平台,让用户能够进行沟通、分享知识和协同工作。在这里,我们重点关注的是Jive 2.5版本的源代码。源...

    jive论坛研究-jive源码

    jive forums 设计模式 Version: 3.2.9 Below is a list of known issues affecting this release of Jive Forums (3.2.9).

    开源程序Jive

    在学习Jive时,你需要掌握以下关键知识点: 1. Java基础:包括类、对象、继承、多态、异常处理、集合框架等。 2. Web开发基础:理解HTTP协议,熟悉Servlet和JSP的工作原理。 3. 数据库连接:Jive通常与关系型数据库...

Global site tag (gtag.js) - Google Analytics