`

数据缓存(一级缓存,二级缓存,第三方缓存)

阅读更多
java 代码
  1. 首先要知道为什么要缓存,我们的项目往往要数据库不会布署在同一个服务器上,那么如果我们的项目要频烦的操作数据库如果没有缓存,速度就会很慢,因为每访问都是一次远程调用,Socket的创建和销毁,数据的打包和拆包,数据查询命令,网络的延时,等等。   
  2.   
  3. 那下面说说缓存。缓存就是把数据库的数据在本地建一个备份放进内存。我们在次查找数据库的时候就先去本地内存中查找,这样相对起来,缓存的好处就一目了然了。   
  4.   
  5. 缓存分为三类   
  6.   
  7. 事务级缓存   
  8.   
  9. 相当于一个session.   
  10.   
  11. 应用级缓存   
  12.   
  13. sessionFactory,可由多个事务共享也就是由多个sesion共享。   
  14.   
  15. 分布级缓存   
  16.   
  17. 多个JVM之间共享   
  18.   
  19. 目前为止分布级缓存只有EJB做的最好了。Hibernate这一块并不好。   
  20.   
  21. Hibernate数据缓存   
  22.   
  23. Hibernate的数据缓存分为两个层次,   
  24.   
  25. 内部缓存(Session level,也叫一级缓存也叫是事务级缓存)   
  26.   
  27. 二级缓存(SessionFactory level)   
  28.   
  29. 内部缓存正常情况下由Hibernate自动维护如果需要手动干预。我们可以通过   
  30.   
  31. Session.evict;   
  32.   
  33. 将某个特定对象从内部缓存中清除   
  34.   
  35. Session.clear   
  36.   
  37. 清空内部缓存   
  38.   
  39. 这些都是在没有分布式缓存的情况下使用的。   
  40.   
  41. 数据库没有被其他应用程序共享。   
  42.   
  43. 项目没有部署到集群环境中。   
  44.   
  45. 第三方缓存的实现   
  46.   
  47. JCS是apache提供的但是在某些情况下可能导致内存泄漏以及死锁   
  48.   
  49. 常用的是ehcache,相比jcs,ehcache更加稳定并具备更好的缓存调度性能。但是对分布式缓存没有支持。   
  50.   
  51. 为什么引入第三缓存   
  52.   
  53. Hibernate本身并没有提供二级缓存的产品化实现,只是提供了一个基于hashtable的简单缓存经供调试,而提供了接口,让众多第三方缓存组件实现   
  54.   
  55. 文章引用自:    
分享到:
评论

相关推荐

    深入理解MyBatis中的一级缓存与二级缓存

    二级缓存的原理是:每一个namespace的mapper都有一个二级缓存区域,两个mapper的namespace如果相同,这两个mapper执行sql查询到数据将存在相同的二级缓存区域中。 开启二级缓存需要在MyBatis的配置文件中加入 `...

    hibernate一级缓存和二级缓存的区别与联系

    二级缓存可以是内存中的缓存,也可以扩展到硬盘,例如使用第三方缓存提供商(如 EhCache 或者 Infinispan)。二级缓存中存储的是对象的集合数据,而不是单个对象实例,这样可以更高效地处理大量数据。二级缓存可以...

    hibernate一级缓存、二级缓存和查询缓存

    二级缓存的实现需要依赖第三方缓存提供者,如EhCache、Infinispan等。二级缓存的主要特点包括: - **跨事务共享**:与一级缓存不同,二级缓存可以在多个事务之间共享数据,提高了数据的复用性。 - **配置复杂**:二...

    Redis用作二级缓存

    Redis作为二级缓存是数据库系统优化的一个重要策略,特别是在高并发、大数据量的场景下,可以显著提升应用性能。在Mybatis中,二级缓存是一个跨Mapper共享的区域,用于存储查询结果,避免了重复查询数据库,从而降低...

    Hibernate一级缓存和二级缓存

    标题“Hibernate一级缓存和二级缓存”指的是Hibernate框架中的两种缓存机制,它们是提高数据访问性能的关键要素。一级缓存是Session级别的,而二级缓存是SessionFactory级别的,两者在数据库操作中起到了重要的作用...

    hibernate一级和二级缓存配置与详解

    一级缓存提供了快速的数据访问,而二级缓存则通过跨Session共享数据,进一步减少了数据库交互。查询缓存则针对查询结果进行缓存,尤其适用于重复查询的情况。理解并合理配置和使用这些缓存,能有效优化Java应用的...

    mybatis一级缓存和二级缓存简单示例

    开启二级缓存后,相同的数据在不同 SqlSession 中查询时,如果一级缓存未命中,则会尝试从二级缓存中获取。二级缓存的生命周期更长,但在并发环境下需要谨慎使用,因为它可能会引发数据不一致的问题。 ### 开启缓存...

    day37 05-HIbernate二级缓存:一级缓存更新同步到二级缓存及二级缓存配置文件

    二级缓存通常由第三方缓存提供商如Ehcache、Infinispan等实现。 一级缓存到二级缓存的同步是自动进行的。当对象在一级缓存中被修改并提交后,Hibernate会根据配置将这些变化同步到二级缓存中。这个过程包括了更新、...

    hibernate的一级缓存和二级缓存

    二级缓存的实现通常由第三方插件提供,如Ehcache或Infinispan,Hibernate通过CacheProvider接口进行集成。二级缓存需要提供并发访问策略以确保事务隔离级别,同时也需要设定数据过期策略,如最大内存数量、存活时间...

    计算机CPU一级二级三级缓存介绍.pdf

    计算机 CPU 一级二级三级缓存介绍 计算机 CPU 中的缓存是一种高速缓存器,负责存储 CPU 经常访问的数据,以便 CPU 可以快速地访问这些数据。缓存的大小和类型对 CPU 的性能有着很大的影响。 一、缓存的分类 缓存...

    MyBatis缓存(一级缓存、二级缓存)

    3. 当SqlSession提交事务时,一级缓存中的数据会被复制到二级缓存中。 4. 如果其他SqlSession执行相同的查询,会先查看二级缓存,找到则返回,否则查询数据库并更新二级缓存。 需要注意的是,二级缓存对数据一致性...

    Hibernate一级缓存、二级缓存以及查询缓存实例

    二级缓存通常由第三方插件如Ehcache或Infinispan提供支持。使用二级缓存需要注意的是,由于数据可能存在多个Session之间共享,因此需要处理并发问题,确保数据的一致性。此外,对于经常更新的数据,可能需要更频繁地...

    一级缓存和二级缓存

    一级缓存(L1 Cache)和二级缓存(L2 Cache)是CPU内部的重要组成部分,它们位于主内存和CPU核心之间,扮演着数据快速访问的角色。本文将深入探讨这两个级别的缓存系统,以及它们在优化计算性能中的作用。 首先,一...

    springMybatis+redis三级缓存框架

    在"springMybatis+redis三级缓存框架"中,MyBatis的二级缓存作为第一级,Redis作为第二级,而Redis中的缓存失效策略(例如LRU,TTL)则可以进一步优化数据的读取。如果一级缓存中未找到所需数据,系统会查询二级缓存...

    Hibernate一级缓存和二级缓存【内附二级缓存数据存储结构】

    二级缓存通常由第三方插件如EhCache、Infinispan等提供支持。与一级缓存相比,二级缓存的生命周期更长,但它的数据一致性相对较弱,因为数据库的更新可能不会立即反映在二级缓存中。 二级缓存数据存储结构通常是...

    一级缓存、二级缓存、三级缓存区别终稿.pdf

    缓存是计算机处理器性能优化的关键组成部分,主要分为一级缓存(L1 Cache)、二级缓存(L2 Cache)和三级缓存(L3 Cache)。这些缓存层级的存在是为了减少CPU访问主内存的时间,提高计算效率。 一级缓存是离CPU最近...

    mybatis一二级缓存

    在 MyBatis 中,一级缓存和二级缓存是两个重要的性能优化手段,它们可以有效减少对数据库的访问,提高系统的响应速度。下面将详细阐述这两个缓存机制。 ### 一级缓存 一级缓存是 MyBatis 默认开启的本地会话缓存,...

    16一级缓存、二级缓存、EhCache第三方缓存.md

    16一级缓存、二级缓存、EhCache第三方缓存.md

    cpu二级缓存设置

    二级缓存的作用在于存储一级缓存无法容纳的数据和指令,同时也为CPU提供额外的数据存储空间,以进一步提升数据的访问速度。当一级缓存无法找到所需的数据时,CPU会尝试从二级缓存中读取数据。 #### 二、开启CPU二级...

Global site tag (gtag.js) - Google Analytics