知识点 :
【
缓存的作用主要用来提高性能,可以简单的理解成一个Map;使用缓存涉及到三个操作:把数据放入缓存、从缓存中获取数据、删除缓存中的无效数据。
一级缓存,Session级共享。
save,update,saveOrUpdate,load,get,list,iterate,lock这些方法都会将对象放在一级缓存中,一级缓存不能控制缓存的数量,所以要注意大批量操作数据时可能造成内存溢出;可以用evict,clear方法清除缓存中的内容。
二级缓存,SessionFactory级共享。
实现为可插拔,通过修改cache.provider_class参数来改变;
hibernate内置了对EhCache,OSCache,TreeCache,SwarmCache的支持,可以通过实现CacheProvider和Cache接口来加入Hibernate不支持的缓存实现。
在hibernate.cfg.xml中加入:
<class-cache class="className" usage="read-only"/>
或在映射文件的class元素加入子元素:
<cache usage="read-write"/>
其中usage:read-only,read-write,nonstrict-read-write,transactional
Session的:save(这个方法不适合native生成方式的主键),
update,saveOrUpdate,list,iterator,get,load,以及Query,Criteria都会填充二级缓存,但只有(没打开查询缓存时)Session的iterator,get,load会从二级缓存中取数据(iterator可能存在N+1次查询)。
Query,Criteria(查询缓存)由于命中率较低,所以hibernate缺省是关闭;修改cache.use_query_cache为true打开对查询的缓存,并且调用query.setCacheable(true)或criteria.setCacheable(true)。
SessionFactory中提供了evictXXX()方法用来清除缓存中的内容。
统计信息打开generate_statistics,用sessionFactory.getSatistics()获取统计信息。
分布式缓存和中央缓存。
使用缓存的条件
1.读取大于修改。
2.数据量不能超过内存容量。
3.对数据要有独享的控制。
4.可以容忍出现无效数据。
】
分享到:
相关推荐
浏览器缓存机制介绍与缓存策略剖析 浏览器缓存机制是指浏览器在请求资源时,对已经请求过的资源进行缓存,以便下次请求时可以直接从缓存中获取,从而提高页面加载速度和减少服务器的压力。本文将详细介绍浏览器缓存...
"深入理解MyBatis中的一级缓存与二级缓存" MyBatis是一种流行的持久层框架,它提供了缓存机制来提高应用程序的性能。在MyBatis中,有两种类型的缓存:一级缓存和二级缓存。下面我们将深入了解MyBatis中的一级缓存和...
本地缓存与分布式缓存优缺点、使用场景 缓存是计算机系统中的一种优化技术,通过将频繁访问的数据存储在内存中,以减少对外部存储设备的访问次数,提高系统的响应速度和性能。本文将详细介绍本地缓存与分布式缓存的...
Android WebView 缓存详解 一. 两种缓存类型: 页面缓存:加载一个网页时的html、JS、CSS等页面或者资源数据,这些缓存资源是由于浏览器 的行为而产生,开发者只能通过配置HTTP响应头影响浏览器的行为才能间接地...
### JSP 页面缓存及其清除方法详解 #### 一、JSP页面缓存的重要性与应用场景 JSP(Java Server Pages)技术是一种结合了HTML、XML和Java编程的技术,用于创建动态网页。在JSP开发中,页面缓存是一种常用的技术手段...
在面试中,对于缓存相关的知识点,面试官可能会考察你对缓存雪崩、缓存穿透、缓存预热、缓存更新以及缓存降级的理解和处理策略。以下是这些概念的详细解释: 1. **缓存雪崩** 缓存雪崩是指大量缓存在同一时刻过期...
缓存是一种存储技术,它将频繁使用或近期可能需要的数据临时存储在速度较快、访问成本较低的地方,以便快速读取,减少对原始数据存储(如数据库)的直接访问压力。缓存能够提升数据检索效率,因为从缓存中读取数据...
在Spring Boot应用中,缓存一致性是一个重要的议题,特别是在分布式系统中,多个节点可能同时访问并更新同一数据,导致缓存中的数据不一致。本文将深入探讨Spring Boot中如何处理和解决缓存一致性问题。 首先,我们...
在IT行业中,缓存是一种非常重要的技术,它能够提高应用程序的性能和响应速度,通过将经常访问的数据存储在快速访问的内存中,避免了频繁的数据库查询或计算。本示例将聚焦于“Spring简单的缓存”实现,帮助开发者...
Chrome浏览器作为一个广泛使用的网络浏览工具,其缓存机制在日常使用中起着至关重要的作用。缓存能够存储网页的静态资源,如图片、CSS样式表和JavaScript文件,以提高页面加载速度,提升用户体验。然而,有时为了...
在网页开发中,缓存是一种优化加载速度和减少网络带宽消耗的重要技术。它涉及到浏览器、中间缓存服务器以及Web服务器之间的交互。本篇将详细阐述如何设置页面的缓存与不缓存,以及HTML页面中`meta`标签的作用。 ...
本篇文章将详细介绍ThinkPHP缓存机制,以及如何使用“THINKPHP缓存清理器”来维护RUNTIME文件夹下的DATA CACHE等文件。 ThinkPHP缓存系统是为了解决应用程序中的数据读取速度问题,特别是对于那些频繁但不经常变化...
7. **缓存击穿与缓存雪崩**:处理大量并发请求同时导致缓存失效(击穿)或整个缓存服务崩溃(雪崩)的问题,可以通过加锁、使用分布式锁、预热缓存等方式解决。 8. **监控与统计**:为了优化缓存性能,需要收集和...
在Linux操作系统中,管理和查看被缓存的文件是系统管理员和开发者日常工作中不可或缺的一部分。缓存文件通常是系统为了提高性能而存储在内存中的数据,它们可以是文件系统缓存、程序运行时的数据缓存或是网络请求的...
Redis作为二级缓存是数据库系统优化的一个重要策略,特别是在高并发、大数据量的场景下,可以显著提升应用性能。在Mybatis中,二级缓存是一个跨Mapper共享的区域,用于存储查询结果,避免了重复查询数据库,从而降低...
WebAPI接口缓存组件是一种优化WebAPI服务性能的技术,它通过存储先前请求的响应结果,减少不必要的数据库查询或计算,从而提高系统响应速度。本文将详细介绍这个自定义的WebAPI接口缓存组件的设计原理、实现方式及其...
在 IT 领域,缓存是一种重要的技术,用于提高应用程序的性能和响应速度。缓存的基本原理是将常用数据存储在高速、接近计算单元的地方,以便快速访问,减少对慢速存储(如硬盘或网络)的依赖。本文将深入探讨缓存、...
本篇文章将深入探讨如何在Geoserver中配置图层缓存,以及缓存对性能的影响。 一、图层缓存的重要性 图层缓存是Geoserver优化性能的关键机制之一。当用户请求地图时,Geoserver会预先渲染图层并将其存储在硬盘上,...
在Android应用开发中,缓存管理是至关重要的一个环节,它关系到应用的性能、内存使用以及用户体验。本文将深入探讨如何实现Android app的缓存清理,并基于提供的"CacheClear"压缩包文件,讲解如何封装一个获取和清理...