热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ehcache的简单使用

2019独角兽企业重金招聘Python工程师标准前段时间公司的新项目要求使用Hibernate二级缓存,近期通过在网上也看了不少帖子。ehcache是一个非常轻

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

前段时间公司的新项目要求使用Hibernate二级缓存,近期通过在网上也看了不少帖子。

ehcache是一个非常轻量级的框架,1.2以后就支持了集群,并且是Hibernate默认的缓存provider.

主要特性
     1. 快速.
     2. 简单.
     3. 多种缓存策略
     4. 缓存数据有两级:内存和磁盘,因此无需担心容量问题
     5. 缓存数据会在虚拟机重启的过程中写入磁盘
     6. 可以通过RMI、可插入API等方式进行分布式缓存
     7. 具有缓存和缓存管理器的侦听接口
     8. 支持多缓存管理器实例,以及一个实例的多个缓存区域
     9. 提供Hibernate的缓存实现
     10. 等等

下面是我的一些使用心得。

既然是hibernate二级缓存 首先当然要配置Hibernate了,我使用的是Hibernate3.3。

然后在src目录下创建ehcache.xml文件

ehcache.xml配置如下:


  

maxElementsInMemory:设置缓存中可以存放多少个对象。

eternal:设置缓存是否过期 值为true时则缓存永不过期,一旦设置了,那么timeToIdleSeconds和timeToLiveSeconds将失效

timeToIdleSeconds: 设置一个对象被访问后多少秒没有被再次访问就失效。0为无穷大

timeToLiveSeconds: 设置对象在创建以后多少秒没有被访问就失效。0为无穷大。

overflowToDisk:设置当缓存对象超过设置最大值时是否存入磁盘中。

memoryStoreEvictionPolicy:当缓存中对象超过maxElementsInMemory所设置的值后,ehcache将会根据指定的策略去清理内存,默认清理策略为 LRU (最少使用)。也可以设置为FIFO(先进先出)策略。

maxElementsOnDisk : 设置缓存对象在磁盘中的最大数量,0表示无限制。仅在overflowToDisk设置为true时有效。

diskSpoolBufferSizeMB: 设置磁盘缓存区的大小MB为单位。默认30MB。

diskStore: 设置当缓存数量大于maxElementsInMemory设置的值是缓存到磁盘中的位置。仅在overflowToDisk为true时有效。path有四种设置方法,1、直接设置路径。2、user.home用户主目录.3、user.dir用户当前工作目录。4、java.io.tmpdir默认临时缓存目录。


配置好ehcache.xml文件后,要配置Hibernate配置文件.

在配置文件中写入:

        org.hibernate.cache.EhCacheProvidertruetrue

缓存提供类。2.1以上是这个。2.1以下为net.sf.hibernate.cache.EhCache。还有4.0以上应该不是这个文件了。

class-cache:设置缓存持久类。usage:设置缓存可读写。class:持久类全类名。region与ehcache中cache设置的name属性相同。不设置则为默认缓存策略。

设置持久类缓存有三种方法class-cache为其中一种。我看用着清晰方便就用的这种。还有一种注解形式,因为本人注解用的不太好所有没有研究这个。第三种方法就是,在Hibernate映射的*.hbm.xml文件中class标签下第一行设置

 注:SSH中hibernate配置的cache信息

1<prop key&#61;"hibernate.cache.provider_class">org.hibernate.cache.EhCacheProviderprop>







转:https://my.oschina.net/zhangxiaoc/blog/537312



推荐阅读
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 突破MIUI14限制,自定义胶囊图标、大图标样式,支持任意APP
    本文介绍了如何突破MIUI14的限制,实现自定义胶囊图标和大图标样式,并支持任意APP。需要一定的动手能力和主题设计师账号权限或者会主题pojie。详细步骤包括应用包名获取、素材制作和封包获取等。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
author-avatar
CHEN--MIN--珊
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有