锁定老帖子 主题:Hibernate的优化:Cache
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-07-28
分离的北极熊 写道 Hibernate 不是采取的Oscache做的二级缓存么…………
为什么还要单独的去换其他的缓存框架来做二级缓存? 理由是什么 这个问题的产生并不是因为更换了二级缓存,而是hibernate的机制。它必须维护着数据库连接去cache查找数据,然后返回。应为这一系列操作是个事务,hibernate无法判断哪些数据在cache中没有,所以实现起来就必须这样。 至于oscache和memcached的区别、优劣,看来你对memcached不太了解,查阅一下相关资料吧。 |
|
返回顶楼 | |
发表时间:2010-07-28
aiyanbo 写道 hibernate 自身的缓存机制就已经够完善了 包括了楼主所说的 一级缓存和二级缓存...可以直接使用,,,不过楼主钻研的精神值得我们每一个人学习的.
这不是为了钻研。hibernate本身产生是为了企业级开发,当用到互联网应用上的时候必然出现这样那样的问题。出了问题了,性能不符合要求,必须要分析和优化。而且,针对不同的应用场景,确实可以采用不同的方法进行优化达到性能上的要求。 |
|
返回顶楼 | |
发表时间:2010-07-28
kaowww153 写道 分离的北极熊 写道 Hibernate 不是采取的Oscache做的二级缓存么…………
为什么还要单独的去换其他的缓存框架来做二级缓存? 理由是什么 Oscache也是第三方的,hibernate本身只有一个只能放在内存里的缓存只能测试时用,叫什么名字忘了。 是想说EHCache?oscache也好,ehcache也好,memcached也好,都是放在内存里的缓存,这样才能提高读取速度。即便是硬盘式的缓存Tokyo Tyrant,也是在内存里维护了一个缓存区。 |
|
返回顶楼 | |
发表时间:2010-07-28
学习了,有机会好好研究下
|
|
返回顶楼 | |
发表时间:2010-07-28
my_corner 写道 kaowww153 写道 分离的北极熊 写道 Hibernate 不是采取的Oscache做的二级缓存么…………
为什么还要单独的去换其他的缓存框架来做二级缓存? 理由是什么 Oscache也是第三方的,hibernate本身只有一个只能放在内存里的缓存只能测试时用,叫什么名字忘了。 是想说EHCache?oscache也好,ehcache也好,memcached也好,都是放在内存里的缓存,这样才能提高读取速度。即便是硬盘式的缓存Tokyo Tyrant,也是在内存里维护了一个缓存区。 很显然我说的不是ehcache,ehcache地球人都知道,而且是可以支持硬盘的,我说的是org.hibernate.cache.HashtableCacheProvider |
|
返回顶楼 | |
发表时间:2010-07-28
Tokyo Tyrant 这个名字起的真...
|
|
返回顶楼 | |
发表时间:2010-07-28
ehcache是java进程管理的cache吧
|
|
返回顶楼 | |
发表时间:2010-07-28
kaowww153 写道 my_corner 写道 kaowww153 写道 分离的北极熊 写道 Hibernate 不是采取的Oscache做的二级缓存么…………
为什么还要单独的去换其他的缓存框架来做二级缓存? 理由是什么 Oscache也是第三方的,hibernate本身只有一个只能放在内存里的缓存只能测试时用,叫什么名字忘了。 是想说EHCache?oscache也好,ehcache也好,memcached也好,都是放在内存里的缓存,这样才能提高读取速度。即便是硬盘式的缓存Tokyo Tyrant,也是在内存里维护了一个缓存区。 很显然我说的不是ehcache,ehcache地球人都知道,而且是可以支持硬盘的,我说的是org.hibernate.cache.HashtableCacheProvider Oscache 既支持内存也支持硬盘缓存的,可以缓存任何对象…… memcached 确实没了解过,有时间去查阅下资料 |
|
返回顶楼 | |
发表时间:2010-07-28
我也遇到了同样的问题,当时很是费解,为什么日志上都输出了sql语句可数据库连接还是这么高?现在终于明白了。哈哈
|
|
返回顶楼 | |
发表时间:2010-07-28
oscache,ehcache 是java进程管理的需要启动jvm的,高并发的情况下是否消耗cpu资源?
|
|
返回顶楼 | |