最近,我尝试了休眠缓存。 在这篇文章中,我想分享我的经验,并指出Hibernate Second Level Cache的一些细节。 在此过程中,我将指导您阅读一些有助于实现缓存的文章。 让我们从地面开始。

在休眠状态下缓存

缓存功能旨在减少必要的数据库访问量。 缓存对象时,它们将驻留在内存中。 您可以灵活地限制内存的使用并将项目存储在磁盘存储中。实现取决于底层的缓存管理器。 可以使用多种缓存类型,但是更好地缓存非事务性和只读数据。

Hibernate提供了3种缓存类型。

1.会话缓存

会话缓存在当前会话中缓存对象。 在Hibernate中默认启用它。 阅读有关会话缓存的更多信息。 会话缓存中的对象位于相同的内存位置。

2.二级缓存

二级缓存负责跨会话缓存对象。 启用此选项后,将首先在缓存中搜索对象,如果未找到对象,则将触发数据库查询。 在这里阅读有关如何实现二级缓存的信息 。 当使用对象的主键加载对象时,将使用二级缓存。 这包括获取关联。 在二级缓存的情况下,将构造对象,因此所有对象将驻留在不同的内存位置。

3.查询缓存

查询缓存用于缓存查询结果。 阅读有关如何实现查询缓存的信息 。打开查询缓存时,查询结果将根据组合查询和参数进行存储。 每次触发查询时,缓存管理器都会检查参数和查询的组合。 如果在高速缓存中找到结果,则将它们返回,否则将启动数据库事务。 如您所见,如果查询具有多个参数或单个参数可以包含多个值,则缓存查询不是一个好主意。 对于每种组合,结果都存储在存储器中。 这会导致大量的内存使用。

最后,这是有关此主题的好文章列表,

1. 通过二级缓存加速您的Hibernate应用程序
2. 休眠:真正了解二级和查询缓存
3. EhCache与Spring和Hibernate集成。 分步教程 4. 使用休眠配置Ehcache

参考: 有关 “面向对象的生活”博客的JCG合作伙伴 Manu PK的所有有关Hibernate Second Level Cache的信息。

翻译自: https://www.javacodegeeks.com/2012/08/hibernate-caches-basics.html

Hibernate缓存基础知识相关推荐

  1. 微信小程序开发数据缓存基础知识辨析以及运用实例

    微信小程序开发数据缓存基础知识辨析以及运用实例 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的 ...

  2. hazelcast 使用_使用HazelCast进行Hibernate缓存:JPA缓存基础知识

    hazelcast 使用 HazelCast的最大功能之一就是对Hibernate第二级缓存的支持 . JPA具有两个级别的缓存. 一级缓存在事务期间缓存对象的状态. 通过两次查询相同的对象,您必须获 ...

  3. 使用HazelCast进行休眠缓存:JPA缓存基础知识

    HazelCast的最大功能之一就是对hibernate二级缓存的支持 . JPA具有两个级别的缓存. 一级缓存在事务期间缓存对象的状态. 通过查询相同的对象两次,您必须获得第一次获取的对象. 但是, ...

  4. 02-CPU基础知识:通俗易懂方式理解主频、核心、线程、缓存、架构

    我们通常会将CPU比喻为人类的大脑,是计算机的核心硬件,决定了一台电脑的运算性能好坏.我们在选购CPU的时候,通常都会在网上查询处理器型号参数,主要是看主频.核心.线程.缓存.架构等参数,那么对于小白 ...

  5. Redis第一讲:相关的基础知识/数据类型/缓存的过期策略/双写一致性/内存存储和持久化

    Redis第一讲:相关的基础知识 摘要:本文是Redis(6.2.1)详解的第一讲,介绍Redis相关的基础知识,内存存储和持久化,Redis作缓存使用时的注意要点,常见的数据类型,缓存的过期策略,R ...

  6. 老司机带你玩转面试(1):缓存中间件 Redis 基础知识以及数据持久化

    引言 今天周末,我在家坐着掐指一算,马上又要到一年一度的金九银十招聘季了,国内今年上半年受到 YQ 冲击,金三银四泡汤了,这就直接导致很多今年毕业的同学会和明年毕业的同学一起参加今年下半年的秋招,这个 ...

  7. IT:后端进阶技术路线图(初级→中级→高级)、后端开发工程师(技术方向分类之后台业务开发/中间件/内核/分布式架构)基础知识简介、技术路线/技术趋势指南(如何选择自己的技术方向)之详细攻略

    IT:后端进阶技术路线图(初级→中级→高级).后端开发工程师(技术方向分类之后台业务开发/中间件/内核/分布式架构)基础知识简介.技术路线/技术趋势指南(如何选择自己的技术方向)之详细攻略 目录 后端 ...

  8. 计算机基础知识对程序员来说有多重要?

    数据结构和算法,操作系统,编译原理,计算机组成原理这些课程对普通程序员来说是否需要去学习?会带来哪些帮助? 我们依次来了解这几门课程是在工作中有啥用,回答有点长,请保持耐心:) 一.数据结构与算法 正 ...

  9. SpringBoot基础知识

    SpringBoot基础知识 SpringBoot课程笔记 前言 ​ 很荣幸有机会能以这样的形式和互联网上的各位小伙伴一起学习交流技术课程,这次给大家带来的是Spring家族中比较重要的一门技术课程- ...

最新文章

  1. java找图最短路径_查找有向图最短路径
  2. [Matlab] 获取给定两点间直线上点集的方法
  3. 徐州联赛选拔赛 - 判断能否构成树
  4. Android MagicIndicator系列之一 —— 使用MagicIndicator打造千变万化的ViewPager指示器...
  5. tcp port numbers reused出现原因_python socket(tcp 线程)实现简单聊天室
  6. SparkSQL之External Data读写parquet
  7. 【CSS】自定义checkbox样式
  8. UVA208Firetruck 消防车(图的路径搜索)
  9. 一篇文章学会mysql_一篇文章帮你搞定所有MySQL命令!
  10. Java与C++有何区别呢?请看以下几点就明白了……
  11. SharePoint 2013 中自定义WCF服务
  12. STVD+Cosmic搭建STM8开发环境
  13. 学会-精湛-应用,一个数据分析师的养成手册
  14. 我过去1个月的上课总结
  15. lpx寒假作业案例10
  16. linux自动联想,在联想扩展坞和Linux上自动切换显示
  17. c++中整形输入逗号_Excel 2013中单元格添加下拉列表的方法
  18. 结合grabcut和inpaint,实现人像去除
  19. 秀米中如何添加链接、文件链接、小程序链接?
  20. 园区元宇宙:打造智慧园区综合治理可视化管理平台

热门文章

  1. jvm运行时类加载机制_JVM体系结构:JVM类加载器和运行时数据区
  2. datastax.repo_使用Datastax Java驱动程序与Cassandra进行交互
  3. java如何避免注释重复_Java 8中的可重复注释
  4. java ee打印功能_Java EE 8的前5个新功能
  5. jvm高并发_JVM上的高并发HTTP客户端
  6. 响应式多级菜单 侧边菜单栏_使用纯HTML和OmniFaces构建动态响应的多级菜单
  7. Java中的装饰器设计模式
  8. Jar Hell变得轻松–用jHades揭开类路径的神秘面纱
  9. 您想了解的所有Throwable
  10. 知识图谱 图数据库 推理_图数据库的知识表示与推理