缓存强制刷新:
// 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
分享到:
相关推荐
命中率指请求缓存次数与缓存返回正确结果次数的比例。命中率越高,缓存的利用率也就越高,通常这是衡量缓存效率的一个关键指标。 **1.4 最大保存元素数量** 缓存能够存放的最大元素数量是一个重要的参数,当缓存...
通过设置`flushCache="true"`,可以在某些操作(如插入、更新或删除)后强制清空相应的一级或二级缓存,确保缓存中的数据与数据库保持同步。 对于源码爱好者来说,研究iBATIS的缓存实现可以深入理解其内部的工作...
### iBATIS缓存的使用方法 在数据库访问框架iBATIS中,缓存机制是一项重要的功能,它能够显著提高应用程序的性能。本文将详细介绍iBATIS中的缓存使用方法,包括缓存模型的配置、不同类型的缓存控制器以及如何在SQL...
通过设置 `remapResults="true"`,可以强制IBatis每次执行此查询时都重新生成字段映射信息,而不是使用缓存的字段信息。 Java层调用DAO的方法如下: ```java public void getResDataByCondition(Page page) { // ...
ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园
3. **监控缓存性能**:定期监控缓存的命中率和性能指标,以便及时调整缓存策略。 4. **考虑缓存一致性问题**:特别是在多用户环境下,需要注意缓存一致性的问题,避免出现脏数据。 通过以上配置和理解,你可以更好...
一级缓存的生命周期与SqlSession相同,当SqlSession关闭时,一级缓存中的数据也会被清除。 二级缓存是Mapper(或SqlMap)级别的,它是跨SqlSession的,可以在多个SqlSession之间共享数据。二级缓存需要在Mapper配置...
至于缓存的并发控制,iBatis 在 `put` 和 `get` 方法内部进行了同步处理,但在外部无同步,这意味着在多线程环境下,如果同一时间有相同的查询参数,可能会出现短暂的缓存不命中现象。只有当一个结果被放入Cache后,...
1.3 命中率:衡量缓存效率的指标,表示从缓存中成功获取数据的次数占总请求次数的比例。 1.4 最大保存元素数量:缓存能够容纳的最大数据量,超过这个数量,就需要按照特定策略淘汰旧数据。 1.5 缓存更新策略: - ...
一级缓存的生命周期与SqlSession相同,关闭SqlSession后,缓存会被清空。 2. **二级缓存**:是全局的,跨SqlSession的,需要手动开启。二级缓存将数据存储在Mapper级别,多个SqlSession可以共享同一份缓存。二级...
ibatis 缓存 - 24小时学习网ibatis 缓存 - 24小时学习网ibatis 缓存 - 24小时学习网ibatis 缓存 - 24小时学习网ibatis 缓存 - 24小时学习网
在深入理解iBatis的Cache概念之前,首先需要知道iBatis是一个轻量级的持久层框架,它将SQL映射与Java代码分离,提供了更灵活的数据库操作方式。 **Cache概述** iBatis 提供了本地数据缓存功能,用于存储查询结果集...
ibatis 数据缓存,讨论了ibatis 数据缓存方面的概念,即用法,用到ibatis 数据缓存的可以参考一下
在Spring+iBatis+Oracle体系中,缓存可以分为两种类型:一级缓存(本地缓存)和二级缓存。 一级缓存是iBatis默认提供的,它存在于SqlSession级别,同一SqlSession内的多次查询会共享结果,避免了重复的数据库访问。...
Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将SQL语句与Java代码分离,从而更好地管理数据库操作。Ibatis的出现,解决了传统JDBC中手动编写SQL和结果集映射的繁琐工作,...
源码中`org.apache.ibatis.cache.Cache`接口定义了缓存的基本操作,而具体的缓存实现如`org.apache.ibatis.cache.impl.PerpetualCache`则实现了缓存的存储和读取。 通过阅读和理解iBatis的源码,我们可以更深入地...
五、iBatis与MyBatis的区别与联系 MyBatis是iBatis的升级版,它继承了iBatis的所有优点,并做了很多改进,比如引入了注解支持、增强了对Spring的整合等。MyBatis更加现代化,社区活跃,持续维护,而iBatis则停止了...
Oscache.jar包 博文链接:https://dangzhao.iteye.com/blog/193572