`

ibatis缓存强制刷新与命中率

 
阅读更多

缓存强制刷新:

// spring注入
 private SqlMapClient sqlMapClient;

 public SqlMapClient getSqlMapClient() {
  return sqlMapClient;
 }

 public void setSqlMapClient(SqlMapClient sqlMapClient) {
  this.sqlMapClient = sqlMapClient;
 }

 public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request,
   HttpServletResponse response) throws Exception {
  String[] cacheModelIds = new String[] { "TBL_SELL.oneDayCache" };

  // 刷新指定缓存
  if (cacheModelIds.length > 0) {
   for (String cacheModelId : cacheModelIds) {
    sqlMapClient.flushDataCache(cacheModelId);
   }
  } else {
   // 刷新所有缓存
   sqlMapClient.flushDataCache();
  }
  return null;
 }

 

命中率输出:

SqlMapClientImpl impl = (SqlMapClientImpl) sqlMap;

SqlMapExecutorDelegate delegate = impl.delegate;

Iterator cacheModelNames = delegate.getCacheModelNames();

while(cacheModelNames.hasNext()){

        String model = (String) cacheModelNames.next();

        CacheModel cacheModel = delegate.getCacheModel(model);

        System.out.println(model + ": " + cacheModel.getHitRatio() + "% hit ratio");

}

 

 

spring 导致缓存 失效

http://www.iteye.com/topic/1118901

分享到:
评论

相关推荐

    iBATIS缓存介绍

    命中率指请求缓存次数与缓存返回正确结果次数的比例。命中率越高,缓存的利用率也就越高,通常这是衡量缓存效率的一个关键指标。 **1.4 最大保存元素数量** 缓存能够存放的最大元素数量是一个重要的参数,当缓存...

    iBATIS缓存

    通过设置`flushCache="true"`,可以在某些操作(如插入、更新或删除)后强制清空相应的一级或二级缓存,确保缓存中的数据与数据库保持同步。 对于源码爱好者来说,研究iBATIS的缓存实现可以深入理解其内部的工作...

    iBATIS缓存的使用方法

    ### iBATIS缓存的使用方法 在数据库访问框架iBATIS中,缓存机制是一项重要的功能,它能够显著提高应用程序的性能。本文将详细介绍iBATIS中的缓存使用方法,包括缓存模型的配置、不同类型的缓存控制器以及如何在SQL...

    解决IBatis缓存动态字段问题

    通过设置 `remapResults="true"`,可以强制IBatis每次执行此查询时都重新生成字段映射信息,而不是使用缓存的字段信息。 Java层调用DAO的方法如下: ```java public void getResDataByCondition(Page page) { // ...

    ibatis缓存介绍 - 勇泽 - 博客园.mht

    ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园

    Java ibatis缓存技术

    3. **监控缓存性能**:定期监控缓存的命中率和性能指标,以便及时调整缓存策略。 4. **考虑缓存一致性问题**:特别是在多用户环境下,需要注意缓存一致性的问题,避免出现脏数据。 通过以上配置和理解,你可以更好...

    ibatis-缓存使用示例

    一级缓存的生命周期与SqlSession相同,当SqlSession关闭时,一级缓存中的数据也会被清除。 二级缓存是Mapper(或SqlMap)级别的,它是跨SqlSession的,可以在多个SqlSession之间共享数据。二级缓存需要在Mapper配置...

    ibatis 缓存配置策略

    至于缓存的并发控制,iBatis 在 `put` 和 `get` 方法内部进行了同步处理,但在外部无同步,这意味着在多线程环境下,如果同一时间有相同的查询参数,可能会出现短暂的缓存不命中现象。只有当一个结果被放入Cache后,...

    iBATIS缓存介绍[借鉴].pdf

    1.3 命中率:衡量缓存效率的指标,表示从缓存中成功获取数据的次数占总请求次数的比例。 1.4 最大保存元素数量:缓存能够容纳的最大数据量,超过这个数量,就需要按照特定策略淘汰旧数据。 1.5 缓存更新策略: - ...

    Java_ibatis缓存技术

    一级缓存的生命周期与SqlSession相同,关闭SqlSession后,缓存会被清空。 2. **二级缓存**:是全局的,跨SqlSession的,需要手动开启。二级缓存将数据存储在Mapper级别,多个SqlSession可以共享同一份缓存。二级...

    ibatis 缓存 - 24小时学习网.mht

    ibatis 缓存 - 24小时学习网ibatis 缓存 - 24小时学习网ibatis 缓存 - 24小时学习网ibatis 缓存 - 24小时学习网ibatis 缓存 - 24小时学习网

    ibatis_数据缓存

    在深入理解iBatis的Cache概念之前,首先需要知道iBatis是一个轻量级的持久层框架,它将SQL映射与Java代码分离,提供了更灵活的数据库操作方式。 **Cache概述** iBatis 提供了本地数据缓存功能,用于存储查询结果集...

    ibatis 数据缓存.pdf

    ibatis 数据缓存,讨论了ibatis 数据缓存方面的概念,即用法,用到ibatis 数据缓存的可以参考一下

    spring+ibatis+oracle分页缓存源码

    在Spring+iBatis+Oracle体系中,缓存可以分为两种类型:一级缓存(本地缓存)和二级缓存。 一级缓存是iBatis默认提供的,它存在于SqlSession级别,同一SqlSession内的多次查询会共享结果,避免了重复的数据库访问。...

    ibatis demo,ibatis例子,ibatis示例

    Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将SQL语句与Java代码分离,从而更好地管理数据库操作。Ibatis的出现,解决了传统JDBC中手动编写SQL和结果集映射的繁琐工作,...

    ibatis源码,ibatis源码 ibatis源码 ibatis源码

    源码中`org.apache.ibatis.cache.Cache`接口定义了缓存的基本操作,而具体的缓存实现如`org.apache.ibatis.cache.impl.PerpetualCache`则实现了缓存的存储和读取。 通过阅读和理解iBatis的源码,我们可以更深入地...

    iBatis与数据库交互

    五、iBatis与MyBatis的区别与联系 MyBatis是iBatis的升级版,它继承了iBatis的所有优点,并做了很多改进,比如引入了注解支持、增强了对Spring的整合等。MyBatis更加现代化,社区活跃,持续维护,而iBatis则停止了...

    Ibatis之缓存插件

    Oscache.jar包 博文链接:https://dangzhao.iteye.com/blog/193572

Global site tag (gtag.js) - Google Analytics