Hibernate整合Memcached二级缓存
来源:互联网 发布:java list length 编辑:程序博客网 时间:2024/05/20 13:37
今天弄了一天Hibernate整合Memcached二级缓存,跌跌撞撞终于初步搞定,不报错,总体感觉是Hibernate整合Memcached的官方支持不足。
一、Memcached 服务端安装
请参考:http://www.cnblogs.com/xd502djj/archive/2012/09/25/2701800.html
为了把memcached日志写入到文件,可用如下命令进行启动:
memcached -d -m 1024 -p 11211 -c 512 -P /tmp/memcached.pid -vv >>/tmp/memcached.log 2>&1 -u root
二、Hibernate整合Memcached所需要Jar比较杂乱,不同文章有不同说法,而且没有统一下载地方。
https://code.google.com/p/hibernate-memcached/wiki/Configuration
此处为hibernate-memcached官方wiki提供的整合方案。
三、整合依赖的Jar包:
hibernate-memcached-1.2.2.jar
memcached-2.3.1.jar
slf4j-api-1.7.12.jar
slf4j-log4j12-1.7.2.jar
下载
四、hibernate的配置文件设置
<bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource"><ref bean="datasource" /></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">${hibernate.dialect}</prop><prop key="hibernate.show_sql">true</prop><span style="color:#ff0000;"><prop key="hibernate.cache.use_second_level_cache">true</prop><prop key="hibernate.cache.use_query_cache">true</prop><!-- memercached缓存 --><prop key="hibernate.cache.provider_class">com.googlecode.hibernate.memcached.MemcachedCacheProvider</prop><prop key="hibernate.cache.region_prefix">quality.cache.memercached</prop><!-- memcached 服务地址,多个用空格分隔格式host:port --><prop key="hibernate.memcached.servers">lab-linux.winssage.com:11211</prop><!-- 缓存失效时间,单位秒 --><prop key="hibernate.memcached.cacheTimeSeconds">300</prop></span></props></property><!-- 注册映射文件 --><property name="mappingLocations"><list><value>classpath*:/com/winssage/**/*.hbm.xml </value></list></property></bean>
五、java的bean的*.hbm.xml配置
<hibernate-mapping><class name="com.winssage.service.ServiceType" table="t_service_type" lazy="false"><span style="color:#ff0000;"><cache usage="read-only"/></span><id column="id" type="integer"><generator class="identity" /></id><property name="name" column="name" /><property name="description" column="description" /><many-to-one name="father" column="father_id" class="com.winssage.service.ServiceType" cascade="all"/> </class></hibernate-mapping>
六、查看Hibernate中缓存统计信息
在Hibernate的配置文件中,提供了hibernate.generate_statistics属性,
<property name="hibernateProperties"><props><prop key="hibernate.dialect">${hibernate.dialect}</prop><prop key="hibernate.show_sql">true</prop><prop key="hibernate.cache.use_second_level_cache">true</prop><prop key="hibernate.cache.use_query_cache">true</prop><!-- memercached缓存 --><prop key="hibernate.cache.provider_class">com.googlecode.hibernate.memcached.MemcachedCacheProvider</prop><prop key="hibernate.cache.region_prefix">quality.cache.memercached</prop><!-- memcached 服务地址,多个用空格分隔格式host:port --><prop key="hibernate.memcached.servers">lab-linux.winssage.com:11211</prop><!-- 缓存失效时间,单位秒 --><prop key="hibernate.memcached.cacheTimeSeconds">300</prop><span style="color:#ff0000;"><prop key="hibernate.generate_statistics">true</prop></span></props></property>这时我们已经将Hibernate的统计信息打开了,接下来我们应该怎样使用它呢?
在org.hibernate.SessionFactory类中提供了一个得到统计信息的方法,该方法返回一个Statistic类型的数据。之后我们通过Statistics对象取出数据操作时的缓存信息。它提供了取出全部统计信息和取出指定缓存的统计信息,例如:我们就想查看二级缓存中的统计信息,那么可以通过方法指定。
public void addPet() {// 创建一个Hibernate Configuration类的实例Configuration config = new Configuration().configure();// 创建SessionFactory对象SessionFactory sf = config.buildSessionFactory();// 调用调添加方法PetDaoImpl petImpl = new PetDaoImpl();petImpl.add();// 创建Statistics对象,并通过SessionFactory对象获得统计信息Statistics st = sf.getStatistics();// 打印全部统计信息System.out.println(st);// 打印二级缓存信息System.out.println(st.getSecondLevelCacheHitCount());}
- Hibernate整合Memcached二级缓存
- memcached实现hibernate二级缓存
- Memcached 作为Hibernate的二级缓存
- Hibernate整合spring配置二级缓存
- java中memcached作为hibernate的二级缓存
- SSH2中memcached作为hibernate二级缓存
- SSH2中memcached作为hibernate二级缓存
- Spring 整合 Hibernate 时启用二级缓存
- memcached分布式缓存和hibernate结合-- Hibernate+ehcache二级缓存技术
- AWS中使用Memcached作为hibernate的二级缓存
- struts2.1.8+Spring3.0+Hibernate3.3整合+Hibernate二级缓存配置
- hibernate 二级缓存
- hibernate 二级缓存
- hibernate二级缓存
- Hibernate二级缓存
- hibernate二级缓存
- hibernate 二级缓存
- Hibernate 二级缓存
- RAM/ROM/FLASH说明
- FAQ_07_android:clickable 问题
- VIM中Ctags插件的常用方法
- 深入解析Linux下\r\n的问题
- Android中设置Dialog提示框无背景色--背景无遮罩透明
- Hibernate整合Memcached二级缓存
- 文件夹监听器(监听文件夹下所有文件及文件夹)
- Android中滑屏初探 ---- scrollTo 以及 scrollBy方法使用说明
- AMD FreeSync显示器上市,这是要把G-Sync虐成渣了
- WHU---1084 - 连续技 (后缀数组+二分)
- 2015/04/10随便扯扯
- 创业体会
- 【计数】tower
- Object-C-block和protocol