- 浏览: 821938 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (488)
- struts1 (4)
- spring (13)
- extjs (36)
- mysql (3)
- sqlserver (2)
- oracle (37)
- 杂谈 (11)
- 面试相关 (35)
- Java基础知识总结 (5)
- Java重要知识点 线程和io流知识点 (6)
- 服务器相关 (1)
- 生活 (1)
- jsp (7)
- servlet (2)
- junit (3)
- struts2 (9)
- 开发必备 (4)
- 使用开发工具总结的知识 (4)
- ibatis (12)
- ajax (2)
- dwr (2)
- jquery (1)
- 设计模式 (4)
- Lucene的学习 (5)
- 经验总结 (19)
- mysql全文搜索相关 (7)
- hibernate (33)
- Sphinx (1)
- log4j的总结 (1)
- 敏捷开发 (9)
- 持续集成 (15)
- UML使用总结 (1)
- Scrum (1)
- OO(面向对象编程) (1)
- struts1和struts2总结 (1)
- 数据库加密 (1)
- 多线程和Socket编程 (6)
- PowerDesigner (2)
- 权限相关 (1)
- ant应用总结 (4)
- 面试必知知识点总结 (6)
- io流与nio流总结 面试相关 (1)
- 敏捷管理工具的使用 (7)
- hsqldb相关 (1)
- svn源码相关 (2)
- debug调试技巧总结 (1)
- hibernate和ibatis对比相关 (6)
- eclipse mylyn 插件的使用总结 (2)
- fisheye使用总结 (2)
- java泛型总结 (1)
- ssh整合总结 (10)
- SpringSide的学习总结 (1)
- JPA学习总结 (2)
- RoR 总结 (2)
- 模型驱动 总结 (1)
- Oracle SQL优化技巧 (4)
- 数据库相关资料 (1)
- oracle练习相关 (4)
- PowerDesigner 使用总结 (2)
- Struts实现国际化相关 (2)
- 权限框架 Spring Security (1)
- freemarker使用总结 (1)
- jsp servlet总结相关 (3)
- Java NIO总结 (1)
- 自己学习必须 (3)
- 蝴蝶容器相关 (2)
- eclipse插件的使用 (1)
- myeclipse的使用 (1)
- flex相关 (1)
- javaeye重生后总结的知识点 (2)
- 公司学习总结 (3)
- JAXB 相关 (1)
- ECSide (1)
- EdoJs 企业ajax框架 (1)
- RSA加密算法 (1)
- jbpm相关 (1)
- JMF原理 (1)
- MyEclipse使用总结 (1)
- Funsion Charts 相关总结 (3)
- 常用知识2011 (2)
- Flex与Java整合 (1)
- IBM WebSphere相关 (1)
- jQuery使用技巧 (2)
- 2011年面试相关知识点总结 (2)
- sqlserver开发相关 (8)
- eclipse 打jar相关 (2)
- Oracle/Mysql/SqlServer比较 (1)
- WebService Axis1.4开发相关 (4)
- 进制数的转换 总结 (1)
- WebService Axis2.0开发相关 (0)
- iteye Struts2 Spring Hibernate整合相关 (3)
- iteye osgi资料相关总结 (1)
- iteye ifos相关相关 (1)
- iteye 国际化相关 (1)
- iteye Hibernate缓存机制 (4)
- iteye Struts2 总结 (1)
- iteye Struts标签总结 (0)
- iteye web配置文件大全 (6)
- iteye Efs 框架总结 (1)
- iteye sql优化 (2)
- iteye 大数据量高并发的数据库优化 (1)
- iteye 开发相关 (1)
- iteye s1sh 和 s2sh整合中的问题以及解决 (1)
- iteye s1sh整合实例 (1)
- iteye s2sh整合实例 (1)
- iteye 面试相关 基础篇 (1)
- iteye Android相关 (1)
- iteye 面试相关 Web篇 (1)
- iteye Sql Server相关 (0)
- iteye struts1与struts2比较 (1)
- iteye jquery 和Struts2 (0)
- iteye struts2与其他插件整合 (0)
- iteye jquery 开发相关 (1)
- iteye eclipse结合spket(Ext,Jquery)开发相关 (0)
- iteye myeclipse 使用技巧相关 (0)
- iteye Memcached 缓存系统相关 (0)
- iteye 常用软件相关 (0)
- iteye 最新技术预览 AjaxSwing (0)
- iteye struts上传下载相关 (0)
- iteye 新技术相关 (0)
- test (0)
- iteye 开发Java游戏相关 (0)
- iteye Java反编译 (0)
- iteye XML解析相关 (0)
- iteye 压缩ZIP相关 (0)
- iteye 面试相关 (0)
- iteye Android开发相关 (4)
- csdn (0)
- e-inoc (0)
- iteye http错误码对应说明 (0)
- iteye 面试扩展知识点 (0)
- iteye oracle面试相关 存储过程,触发器,游标等 (0)
- iteye english study (0)
- iteye starflow工作流引擎 (0)
- iteye IBM WebSphere Application Server Toolkit使用相关 (0)
- iteye spring3 (0)
- iteye mybatis (0)
- iteye js技巧总结 (0)
- iteye SEO优化相关 (2)
- iteye QUI网页界面集成框架 (1)
- iteye AjaxAnywhere (1)
- iteye Nutz相关 (1)
- iteye ibatis技巧 (0)
- iteye dwz (0)
- 128个ajax/javascript框架 (0)
- iteye 2012 Java Swing教程 (1)
- iteye 码头集装箱相关 (1)
- iteye swing (2)
- 兼职工作 (0)
- 2012 新总结的面试相关知识点 常用知识点 (1)
- 淘宝网店相关 (0)
- oracle 常用函数 2012新总结 (1)
- 我的时尚潮流屋 (0)
- 2012 年 面试新总结知识 (1)
- 技巧 (1)
- 2013总结 (1)
- 2015工作相关 (3)
- springmvc (5)
- EasyPR-Java (1)
- java (2)
- editplus 4.0 注册码 (1)
- android (1)
- oracle连接数据库相关 (1)
- 编程资料总结 (2)
- 20160808 (1)
- visio 2013 (1)
最新评论
-
drew926:
泛型的类型参数可以有多个?这是java哪个版本支持的?
java泛型总结 -
listenan:
赞!非常感谢。
Scrum总结 -
cwscwj:
写的很深刻,谢谢,看了一遍,过段时间打算再看一遍。
Scrum总结 -
hwedwin:
w
Struts 2中的OGNL\EL的使用总结 -
lanni2460:
不错 很好 支持……
sqlserver三个驱动包下载
项目缓存方案总结
一、 hibernate的二级缓存
如果开启了二级缓存,hibernate在执行任何一次查询的之后,都会把得到的结果集放到缓存中,缓存结构可以看作是一个hash table,key是数据库记录的id,value是id对应的pojo对象。当用户根据id查询对象的时候(load、iterator办法),会首先在缓存中查找,如果没有找到再发起数据库查询。但是如果使用hql发起查询(find, query办法)则不会利用二级缓存,而是直接从数据库获得数据,但是它会把得到的数据放到二级缓存备用。也就是说,基于hql的查询,对二级缓存是只写不读的。
针对二级缓存的工作原理,采用iterator取代list来提高二级缓存命中率的想法是不可行的。Iterator的工作方法是根据检索条件从数据库中选取所有目标数据的id,然后用这些id一个一个的到二级缓存里面做检索,如果找到就直接加载,找不到就向数据库做查询。因此假如iterator检索100条数据的话,最好情况是100%全部命中,最坏情况是0%命中,执行101条sql把所有数据选出来。而list虽然不利用缓存,但是它只会发起1 条sql取得所有数据。在合理利用分页查询的情况下,list整体效率高于iterator。
二级缓存的失效机制由hibernate控制,当某条数据被修改之后,hibernate会根据它的id去做缓存失效操作。基于此机制,如果数据表不是被hibernate独占(比如同时使用JDBC或者ado等),那么二级缓存无法得到有效控制。
由于hibernate的缓存接口很灵活,cacheprovider可以方便的切换,因此支持cluster环境不是大问题,通过使用swarmcache、jboss cache等支持分布式的缓存方案,可以实现。但是问题在于:
1、 分布式缓存本身成本偏高(比如使用同步复制模式的jboss cache)
2、 分布式环境通常对事务控制有较高规定,而目前的开源缓存方案对事务缓存(transaction cache)支持得不够好。当jta事务发生会滚,缓存的最后更新结果很难预料。这一点会带来很大的部署成本,甚至得不偿失。
结论:不应把hibernate二级缓存作为优化的主要手段,一般情况下建议不要使用。
缘故如下:
1、 项目的DAO类大部分是从1.0升级过来,由于1.0采用的是 hibernate 2.1,所以在批量删除数据的时候采用了native sql的方法。虽然2.0已经完全升级到 hibernate3.2,支持hibernate原生的批量删改,但是由于hibernate批量操作的性能不如sql,而且为了兼容1.0的dao 类,所以不少地方保留了sql操作。哪些数据表是单纯被hibernate独占无法统计,而且随着将来业务的成长可能会有很大变数。因此不宜采用二级缓存。
2、 针对系统业务来说,基于id检索的二级缓存命中率极为有限,hql被大部份采用,二级缓存对性能的提升很有限。
3、 hibernate 3.0 在做批量修改、批量更新的时候,是不会同步更新二级缓存的,该问题在hibernate 3.2中是否仍然存在尚不确定。
发表评论
-
Hibernate工作原理
2010-10-03 10:34 4093Hibernate工作原理 图 ... -
Hibernate基础
2010-09-19 09:43 1132Hibernate基础 Part 1 1. ... -
hibernate一对一映射外键关联
2010-09-17 11:24 1308hibernate一对一映射外键关联 一对一外键关联 外键关 ... -
在Hibernate中使用JDBC事务
2010-09-16 14:21 1281在Hibernate中使用JDBC事务 Hibernate ... -
hibernate事务,一级缓存,二级缓存
2010-09-16 12:34 1156hibernate主要从以下几个 ... -
Hibernate的五个核心接口介绍
2010-09-16 12:14 1003所有的Hibernate应用中都会访问Hibernate的 ... -
Hibernate缓存配置/批量处理
2010-09-16 12:01 1186Hibernate缓存配置/批量处 ... -
hibernate知识点总结
2010-09-16 08:48 1282hibernate知识点总结 1.hibernate的优缺点 ... -
hibernate缓存总结
2010-09-16 08:30 965hibernate缓存总结: 缓存是位于应用程序与 ... -
Hibernate中一级缓存、二级缓存及查询缓存的技术性总结
2010-09-15 22:54 866一、 一级缓存 1. 一级缓存只缓存整个对象 ... -
Hiberante3 一级缓存总结
2010-09-15 22:53 438Hiberante3 一级缓存总结 1. ... -
Hibernate中的缓存总结
2010-09-15 22:51 982Hibernate中的缓存总结 Hibernate ... -
hibernate缓存相关
2010-09-15 22:49 807hibernate缓存相关 hibernat ... -
hibernate技术面试相关
2010-09-13 20:51 1147Hibernate 中数据表映射关 ... -
hibernate 相关面试题
2010-09-13 20:50 10071.在数据库中条件查询 ... -
hibernate get()与load()的区别
2010-09-13 15:36 818hibernate get()与load()的区别 s ... -
Hibernate持久化对象的生命周期
2010-09-13 11:06 1052持久化对象的状态: ... -
Hibernate中持久化类实例的三种状态
2010-09-13 10:59 2126在Hibernate中持久化类实 ... -
全面介绍Hibernate持久化类
2010-09-13 10:55 1200Hibernate持久化类使用的是JavaBean的风格,为要 ... -
hibernate参考文档下载
2010-09-13 10:41 1171hibernate参考文档下载 这是一个非常有用改的hibe ...
相关推荐
Ehcache作为一款强大的缓存解决方案,为Java开发者提供了高效的数据缓存手段,能够有效提升系统性能,减轻数据库压力。理解并熟练运用Ehcache,是优化企业级应用性能的关键一步。在实际项目中,根据业务需求选择合适...
总结来说,APICloud中的缓存方案主要是通过JavaScript操作Web Storage和IndexedDB,实现JSON数据的本地存储。结合合理的缓存策略,可以显著提升应用的性能和用户体验。在实际项目中,根据需求选择合适的存储方式,并...
一句话总结一下: pageAList->pageADetail->pageAList, 缓存pageAList, 同时该视频的收藏状态如果发生变化需要更新, 其他页面->pageAList, pageAList不缓存 在网上找了很多别人的方法,都不满足我们的需求 然后...
**标题与描述解析** 标题“memcached完全剖析ehcache memcached redis 缓存技术总结”表明,这篇内容将深入...通过深入学习这些知识点,读者将能够更好地理解并选择适合自己项目的缓存解决方案,从而提升系统性能。
- 如果项目使用了MVC框架(如Spring MVC),可以利用框架提供的拦截器或过滤器来全局禁止缓存: ```java @WebFilter("/*") public class NoCacheFilter implements Filter { @Override public void doFilter...
OSCache 是一个广泛使用的开源缓存解决方案,尤其在Java应用中,它被JBoss, Hibernate, Spring等知名框架所支持。其主要特点是配置简单,适用于页面级别的缓存管理。以下是对OSCache配置和使用过程的详细说明: 1. ...
OSCache 是一款开源的缓存解决方案,主要用于Java应用程序,它为开发者提供了高效的缓存机制,以提高应用性能和响应速度。这篇博客文章“OSCache 缓存对象的总结”主要探讨了OSCache在实际开发中的应用及其核心特性...
### Android项目设计方案知识点详解 #### 一、技术概述与学习内容 在开发Android项目时,会涉及多种技术和工具。为了帮助大家更好地理解这些技术并应用于实际项目中,本篇文章将详细介绍以下关键技术点: 1. **...
分布式缓存是现代大型互联网应用中不可或缺的一部分,尤其是在JavaEE环境下。它主要用来解决数据库的高并发读写压力,...在实际项目中,根据业务需求选择合适的分布式缓存方案,并不断调整和优化,才能充分发挥其优势。
总结来说,这个分享内容涵盖了Redis的基础知识、作为缓存的使用方法以及测试实践,旨在帮助读者理解和掌握如何在实际项目中有效地运用Redis进行数据缓存,提高系统效率。通过学习这些内容,你可以进一步提升自己的IT...
Ehcache是由Terracotta公司开发的开源缓存解决方案,它支持内存和磁盘存储,并且可以与其他Java应用程序服务器集成。Ehcache的核心特性包括:高效的缓存管理、内存和硬盘的二级缓存、缓存过期策略以及分布式缓存支持...
这可能包括但不限于缓存穿透、缓存雪崩、缓存击穿等问题的解决方案,以及如何利用缓存预热、缓存更新策略(如Write-Behind和Write-Through)来提升系统稳定性。此外,还可能涉及缓存的容量管理和数据淘汰策略,例如...
总结,Oracle Coherence为企业级应用提供了强大的缓存解决方案,通过深入理解和充分利用其特性,开发者能够构建出高性能、高可用的分布式系统。无论是快速启动项目,还是进行复杂的缓存管理,Coherence都能提供有力...
总结起来,本项目“缓存机制demo”旨在教授如何在ASP.NET环境中实现高效的缓存策略,特别是针对aspx页面的缓存,以优化网站性能。通过学习和实践,开发者可以更好地理解和运用缓存技术,为大型网站的高并发场景提供...
总结,Java缓存技术是提升系统性能的重要手段,理解其原理和使用方式,结合合适的缓存库,可以有效地优化应用程序的性能,降低对数据库的压力。在实际项目中,应根据业务需求选择合适的缓存策略和工具,确保系统的...
本文将深入探讨“Unity项目热更新方案性能分析总结”这一主题,为开发者提供宝贵的实践经验和性能优化建议。 一、Unity热更新基础 Unity热更新的基本原理是通过分离游戏的核心逻辑和资源,使得部分代码可以在游戏...
总结来说,Nutz框架的缓存机制提供了一套全面的解决方案,包括DAO层的自动缓存、多种缓存策略、自定义缓存实现以及丰富的缓存事件,帮助开发者优化系统性能,提升用户体验。通过学习和应用Nutz缓存,开发者可以更好...
osCache是一款广泛应用于Java应用程序中的开源缓存解决方案,由OpenSymphony团队开发。它提供了一种高效、可扩展的方式来管理应用程序中的数据缓存,从而提高系统的性能和响应速度。osCache的核心功能包括缓存对象、...