首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第一篇:SpringBoot高级-缓存入

https://blog.csdn.net/pyycsd/article/details/80969427 JSR107 Java Caching定义了5个核心接口,分别是...使用Spring缓存抽象时我们需要关注以下两点; 确定方法需要被缓存以及他们的缓存策略 从缓存中读取之前缓存存储的数据 重要概念和缓存注解 Cache 缓存接口,定义缓存操作。...,能够根据方法的请求参数对其结果进行缓存 @CacheEvict 清空缓存 @CachePut 保证方法被调用,又希望结果被缓存 @EnableCaching 开启基于注解的缓存 keyGenerator...@CacheEvict删除缓存,例如根据id删除用户,那么也要删除缓存中的用户信息 @CachePut更新缓存,例如更新用户信息后,同时也要更新缓存中的用户信息 ---- 使用springboot+mybatis...;将方法的返回结果放在哪个缓存中,是数组的方式,可以指定 多个缓存; key:缓存数据使用的key;可以用它来指定。

63640
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    技术 | 小白都能看懂的缓存入

    可以在数据库之上增加一层缓存,当后台程序首次读取数据时,将得到的数据存入缓存中,那么后续的请求要读取相同数据时,只需从缓存中读取即可。...由于缓存是将数据存入内存中,读取速度非常快,在成功提升性能的同时,替数据库分担了大量的压力。 ? 因此想要提升系统的整体性能,缓存是不可或缺的。 缓存类别 可以将缓存分为两种类型。...缓存实现 要想自己设计一个优秀的缓存,还是有难度的,不止是用一个 Java 的数组或者集合类那么简单。幸运的是,有很多现成的类库、框架和中间件可供我们直接使用。下面介绍一些优秀的缓存实现。...Caffeine Caffeine 是基于 Java8 的近似最佳的高性能本地缓存库。提供了灵活的构造器 API,能够轻松地创建缓存对象,并且组合各种特性。可谓是进程缓存之王。...地址:https://github.com/google/guava/ Ehcache Ehcache 是 Java 实现的开源缓存框架,特性齐全,成熟轻量,并且支持通过 RMI 等方式实现可扩展的分布式缓存

    70210

    java map 缓存_缓存用于

    缓存 什么是缓存? 平常的开发项目中,多多少少都会使用到缓存,因为一些数据我们没有必要每次查询的时候都去查询到数据库。...缓存的使用场景: 在Java应用中,对于访问频率高,更新少的数据,通常的方案是将这类数据加入缓存中,相对从数据库中读取,读缓存效率会有很大提升。 在集群环境下,常用的分布式缓存有Redis等。...但在某些业务场景上,可能不需要去搭建一套复杂的分布式缓存系统,在单机环境下,通常是会希望使用内部的缓存(LocalCache)。...使用map缓存 方案: 基于ConcurrentHashMap实现数据缓存,实现线程安全要求 SoftReference:当内存不够的时候,GC会回收SoftReference所引用的对象 SoftReference...对于Cache,我们希望被缓存的对象最好始终常驻内存,但是如果JVM内存吃紧,为了不发生OutOfMemoryError导致系统崩溃,必要的时候也允许JVM回收Cache的内存,待后续合适的时机再把数据重新

    1.1K20

    java http缓存

    HTTP/1.1中缓存的目的是为了在很多情况下减少发送请求,也即直接返回缓存;同时在许多情况下可以不需要发送完整响应。...缓存如何工作 所有的缓存都用一套规则来帮助他们决定什么时候使用缓存中的副本提供服务(假设有副本可用的情况下);一些规则在协议中有定义(HTTP协议1.0和1.1),一些规则由缓存的管理员设置(浏览器的用户或者代理服务器的管理员...); 一般说来:遵循以下基本的规则(不必担心,你不必知道所有的细节,细节将随后说明) 如果响应头信息:告诉缓存器不要保留缓存缓存器就不会缓存相应内容; 如果请求信息是需要认证或者安全加密的,相应内容也不会被缓存...一个缓存的副本如果含有以下信息:内容将会被认为是足够新的 含有完整的过期时间和寿命控制头信息,并且内容仍在保鲜期内; 浏览器已经使用过缓存副本,并且在一个会话中已经检查过内容的新鲜度; 缓存代理服务器近期内已经使用过缓存副本...,并且内容的最后更新时间在上次使用期之前; 够新的副本将直接从缓存中送出,而不会向源服务器发送请求; 如果缓存的副本已经太旧了,缓存服务器将向源服务器发出请求校验请求,用于确定是否可以继续使用当前拷贝继续服务

    1.2K80

    Java高并发缓存架构,缓存雪崩、缓存穿透之谜

    面试官心理分析 其实这是问到缓存必问的,因为缓存雪崩和穿透,是缓存最大的两个问题,要么不出现,一旦出现就是致命性的问题,所以面试官一定会问你。...面试题剖析 缓存雪崩 对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请求,但是缓存机器意外发生了全盘宕机。...这样的话,缓存中不会有,请求每次都“视缓存于无物”,直接查询数据库。这种恶意攻击场景的缓存穿透就会直接把数据库给打死。 ?...然后设置一个过期时间,这样的话,下次有相同的 key 来访问的时候,在缓存失效之前,都可以直接从缓存中取数据。...缓存击穿 缓存击穿,就是说某个 key 非常热点,访问非常频繁,处于集中式高并发访问的情况,当这个 key 在失效的瞬间,大量的请求就击穿了缓存,直接请求数据库,就像是在一道屏障上凿开了一个洞。

    1.1K40

    java缓存技术总结

    Cache 二、缓存的分类 1、基于web应用的系统架构图 2、在系统架构的不同层级之间,为了加快访问速度,都可以存在缓存 操作系统磁盘缓存->减少磁盘机械操作 数据库缓存->减少文件系统I/O 应用程序缓存...,使用对象缓存将会极大降低Web系统对于数据库的访问请求 良好的设计数据库结构和利用对象缓存,能够提供极高的性能,对象缓存适合OLTP(联机事务处理)应用 2、查询缓存 对数据库查询结果集进行缓存,类似数据库的...查询缓存和对象缓存适用的场景不一样,是互为补充的 当查询结果集涉及的表记录被修改以后,需要注意清理缓存 3、页面缓存 a、作用 针对页面的缓存技术不但可以减轻数据库服务器压力,还可以减轻应用服务器压力...OScache提供了简单的Servlet缓存(通过web.xml中的配置) 也可以自己编程实现Servlet缓存 III、页面内部缓存 针对动态页面的局部片断内容进行缓存,适用于一些个性化但不经常更新的页面...(例如博客) OSCache提供了简单的页面缓存 可以自行扩展JSP Tag实现页面局部缓存 六、web服务器端缓存 基于代理服务器模式的Web服务器端缓存,如squid/nginx Web服务器缓存技术被用来实现

    2.2K50

    Java内存缓存-通过Map定制简单缓存

    为什么要用缓存 ? 场景 在Java应用中,对于访问频率高,更新少的数据,通常的方案是将这类数据加入缓存中,相对从数据库中读取,读缓存效率会有很大提升。...方案 基于JSR107规范自研 基于ConcurrentHashMap实现数据缓存 JSR107规范目标 为应用程序提供缓存Java对象的功能。 定义了一套通用的缓存概念和工具。...最小化开发人员使用缓存的学习成本。 最大化应用程序在使用不同缓存实现之间的可移植性。 支持进程内和分布式的缓存实现。...小例子 使用Map来实现一个简单的缓存功能 MapCacheDemo.java package me.xueyao.cache.java; import java.lang.ref.SoftReference...; import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; /** * @author simon *

    3.6K41
    领券