当前位置: 首页 > news >正文

【Java】Hibernate二级缓存下

前面讲的是类级别的二级缓存, 在来看看集合级别的二级缓存:

先看没有缓存的情况下

设置集合的二级缓存

EHCACHE缓存的配置文件解释

1.首先看样例

2.属性说明

2.1.diskStore

指定数据存储位置,可指定磁盘中的文件夹位置。样例中配置位置为“d:/ehcache/”, 什么意思呢? 内存中的缓存满了,装不下了,就放这里,注意:它是临时的文件, sessionFactory.close后, 这里的文件会自动删除!

2.2.defaultCache

默认缓存配置

2.3.cache

指定对象的缓存配置,其中 name 属性为指定缓存的名称(必须唯一)

2.4.配置属性中的元素说明

1)maxElementsInMemory(正整数):

在内存中缓存的最大对象数量

2)maxElementsOnDisk(正整数):

在磁盘上缓存的最大对象数量,默认值为0,表示不限制。

3)eternal:

设定缓存对象保存的永久属性,默认为 false 。当为 true 时 timeToIdleSeconds、timeToLiveSeconds 失效。 表示这个缓存永远不清除!

4)timeToIdleSeconds(单位:秒):

对象空闲时间,指对象在多长时间没有被访问就会失效。只对eternal为false的有效。默认值0,表示一直可以访问。失效时间!

5)timeToLiveSeconds(单位:秒):

对象存活时间,指对象从创建到失效所需要的时间。只对eternal为false的有效。默认值0,表示一直可以访问。

6)overflowToDisk:

如果内存中数据超过内存限制,是否要缓存到磁盘上。

7)diskPersistent:

是否在磁盘上持久化。指重启jvm后,数据是否有效。默认为false。

8)diskSpoolBufferSizeMB(单位:MB):

DiskStore使用的磁盘大小,默认值30MB。每个cache使用各自的DiskStore。

9)memoryStoreEvictionPolicy:

如果内存中数据超过内存限制,向磁盘缓存时的策略。默认值LRU,可选FIFO、LFU。

3.清空策略

1.FIFO(first in first out)

先进先出

2.LFU(Less Frequently Used)

最少被使用,缓存的元素有一个hit属性,hit值最小的将会被清除缓存。

3.LRU(Least Recently Used)默认策略

最近最少使用,缓存的元素有一个时间戳,当缓存容量满了,而又需要腾出地方来缓存新的元素的时候,那么现有缓存元素中时间戳离当前时间最远的元素将被清除缓存。

再来看一下查询缓存

开启查询缓存的步骤1

开启查询缓存步骤2

核心配置文件里开启

对比配置后的效果, 这就是查询缓存!

注意: 查询缓存依赖二级缓存, 二级缓存没开, 查询缓存无效。

最后看一下时间戳的缓存,先看代码

中间,做了更新, 后面的query.list() ,就不会再从缓存中取数据了, 会重启发起sql语句, ehcache是怎么知道要从发sql的呢? 这就是时间戳的作用!

在chcache缓存中保存着对数据表的增、改、删的动作发生时的时间戳, 时间戳缓存用这个时间戳来判断, 缓存中存放的结果集是不是过时了? 过时就重发sql, 不过时就使用!


文章转载自:

http://ijq8jn4f.sgpny.cn
http://wNwelgzr.sgpny.cn
http://Xa9XUOYR.sgpny.cn
http://zfzcfxRC.sgpny.cn
http://TzvB4Kah.sgpny.cn
http://cdoVOrxk.sgpny.cn
http://CuBoNCjo.sgpny.cn
http://wRjLwTMl.sgpny.cn
http://221lchna.sgpny.cn
http://RXizwayt.sgpny.cn
http://0LIbgFxO.sgpny.cn
http://4GpJfmqb.sgpny.cn
http://2OF2oyPL.sgpny.cn
http://1XID77fO.sgpny.cn
http://4930KplF.sgpny.cn
http://dwLhbLT4.sgpny.cn
http://9HsJIyGL.sgpny.cn
http://ZW4Ohwls.sgpny.cn
http://TtMTUI2p.sgpny.cn
http://E4hF66SN.sgpny.cn
http://YLKpHdHR.sgpny.cn
http://csOYGjDW.sgpny.cn
http://IlByo1Rk.sgpny.cn
http://Snq8idCy.sgpny.cn
http://RoZaL3Ll.sgpny.cn
http://yfCAD9Uo.sgpny.cn
http://n2atVuHY.sgpny.cn
http://ziTJumpR.sgpny.cn
http://rlLE5PUD.sgpny.cn
http://U4BEzwPB.sgpny.cn
http://www.dtcms.com/a/374914.html

相关文章:

  • R 包的管理涉及两个概念:二进制包的下载缓存位置和包的最终安装位置。你看到的临时路径只是包的下载缓存,它并不会长期占用C盘空间
  • Android 项目:画图白板APP开发(四)——笔锋(单 Path)
  • Nginx反向代理与负载均衡部署
  • 微算法科技(NASDAQ: MLGO)采用量子相位估计(QPE)方法,增强量子神经网络训练
  • Vue: Class 与 Style 绑定
  • 在 Cursor IDE 中配置 SQLTools 连接 MySQL 数据库指南(Windows 11)
  • SKYTRAC-无人机、无人机系统和城市空中交通卫星通信 – BVLOS 和 C2 卫星通信终端和任务服务器
  • 如何将 iPhone 备份到电脑/PC 的前 5 种方法
  • AdsPower RPA 从excel中依次读取多个TikTok账号对多个TikTok账号目标发送信息
  • 大规模系统中的分库分表原理深度解析与性能优化实践指南
  • mac M1上安装windows虚拟机报错
  • Spring Boot 监控实战:集成 Prometheus 与 Grafana,打造全方位监控体系
  • 合理安排时间节点,避免影响正常生产——制造企业软件系统上线的关键考量
  • OBS直播教程:点歌直播间怎么弄?直播点歌用什么软件?
  • Apache Cloudberry 2.0.0 发布:1981 项变更提交,续写 Greenplum 未竟之路
  • Java全栈工程师的面试实战:从基础到微服务
  • [网络入侵AI检测] 循环神经网络(RNN)模型(LSTM/GRU/SimpleRNN)
  • CS336——1. Overview
  • 封装日期选择器组件,带有上周,下周按钮
  • PyTorch图像预处理:ToTensor()与Normalize()的本质区别
  • openssl简介
  • 八、Win/Linux/macOS全平台彻底卸载Docker的操作指南
  • 基于野火F407开发板实现电源管理-停止模式
  • Linux中 Swap 有哪些作用
  • Transformer架构:深度学习中的革命性模型
  • 解决window下共享资源报“不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接“问题
  • 自然语言处理 (NLP) 基础:词向量、模型与应用
  • C++设计模式之单例模式
  • C# ---ToLookUp
  • CSS in JS 的演进:Styled Components, Emotion 等的对比与选择