我对使用Hibernate+MemCached有一点未解决考虑:
MemCached背景:使用MemCached保存从数据库select出来的某些数据,MemCached作为应用程序和数据库某些数据之间的一个存储中间级。
应用背景:在使用Hibernate时,实现Hibernate二级缓存接口插入到Hibernate中,通过实践,能够轻松将MemCached和Hibernate进行结合应用到实际应用中。
现在转入正题:
hibernate如何才能*自动*充分利用MemCached提供getMulti能力?
如果使用了本地的二级缓存(e.g:OSCache,EHCache),利用query.iterate一般能够提高系统的性能,因为iterate返回Iterator后,调用Iterator.next返回对象后(这是还没有去查找命中或select该主键对应数据行),获取他属性时会从二级缓存里查找是否命中,因为这个查找是本地查找,所以效率比较高。
OK,我的问题是:
1)如果我使用的是需要网络行为的MemCached,我照本宣科地,调用Iterator.next,访问其属性时,应用程序通过网络访问MemCached,查找是否命中。假如最好情况我每次next都命中,这是最好的。可是有多少个对象,就有多少次网络访问。这样似乎并不划算,可能比直接query.list更慢。
2)如果我每次都只是调用Iterator.next时,把id纪录下来,放到数组中,再把这个数组传给MemCached,去查看这些数据是否命中,这样可以只有一次网络访问(假如只有一台MemCached)。这样解决了多次网络访问的问题,可是却不是hibernate的自动行为,这很没意思,因为:
a)没有命中,怎么办?自己再去session.load对象?
b)命中了,又能怎么样?命中了的这些数据现在并不是Hibernate管理的!
分享到:
相关推荐
hibernate-memcached, 在Hibernate中,使用Memcached作为第二级分布式缓存的库 休眠 memcachedHibernate中使用Memcached作为第二级分布式缓存的库。基于优秀的spymemcached客户端包含对 Whalin ( danga ) memcached...
这个包是最高版本了,google code是1.22,但是这个版本是基础班的1.5版本.是github上源代码经过我打包出来的jar
用于hibernate集成memcached作为二级缓存所需要的包,1.2.2版本
hibernate-memcached-1.1.0.jar
hibernate-memcached-1.2.2.jar memcached-2.3.1.jar slf4j-api-1.7.12.jar slf4j-log4j12-1.5.0.jar
hibernate使用memcached作为二级缓存所需要的资源包,包括memcached的windows安装文件、hibernate3和hibernate4整合memcached的jar包 文件目录:commons-codec-1.10.jar、hibernate3-memcached-1.5.jar、hibernate4-...
memcached-2.5-sources.jar、hibernate-memcached-1.2.2-sources.jar、spy-2.4.jar这三个jar不太好找,剩下两个commons-codec和slf4j-log4j直接maven配置一下就行 <groupId>org.slf4j <artifactId>slf4j-log4j12 ...
hibernate-memcached-1.1.0-sources.zip
hibernate-memcached,一个分布式缓存框架,很强大,这里提供hibernate集成jar
解决目前memcached不支持hibernate4的缺陷,hibernate配置<property name="hibernate.cache.region.factory_class">com.googlecode.hibernate.memcached.MemcachedRegionFactory</property>
这是maven工程,解压后直接导入eclipse,就可以使用了
NULL 博文链接:https://dixian.iteye.com/blog/930677
google上的这个包最多是1.2.2但是github上是1.3,源代码下载下来后,我打包为jar的
10.1.1 redis相比memcached有哪些优势?
hibernate-memcached-1.1.0-javadoc.zip
memcache的客户端,用maven构建,里有用hibernate-memcached与hibernate,spring3.0进行配置,也有与spring3.0单独配置。
memcached整合hibernate资源合集
memcached是什么?谁在用memcached? memcached的特征介绍 memcached示例说明 memcached的优化点
Memcached是什么? Memcached是由Danga Interactive开发的,高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。
memcached作为hibernate二级缓存必备的jar包.包含hibernate-memcached-1.2.2.jar memcached-2.1.jar spy-2.4.jar