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

Spring @CachePut将相同的值放入两个键

Spring @CachePut是Spring框架中的一个注解,用于将相同的值放入两个键。

@CachePut注解可以应用在方法上,用于将方法的返回值放入缓存中。它的作用是每次方法被调用后,都会将方法的返回值放入缓存中,以便下次使用相同的参数调用该方法时,可以直接从缓存中获取结果,而不需要再执行方法的逻辑。

在将相同的值放入两个键的场景中,可以使用@CachePut注解来实现。首先,需要在Spring配置文件中配置缓存管理器,例如使用Ehcache作为缓存管理器。然后,在需要缓存的方法上添加@CachePut注解,并指定缓存的名称和键。例如:

代码语言:java
复制
@CachePut(value = "myCache", key = "#key1")
public String putValue(String key1, String key2, String value) {
    // 方法逻辑
    return value;
}

上述代码中,@CachePut注解将方法的返回值放入名为"myCache"的缓存中,并使用key1作为键。如果需要将相同的值放入两个键,可以再添加一个@CachePut注解,指定另一个键。例如:

代码语言:java
复制
@CachePut(value = "myCache", key = "#key2")
public String putValue(String key1, String key2, String value) {
    // 方法逻辑
    return value;
}

这样,每次调用putValue方法时,返回的值都会被放入名为"myCache"的缓存中,并使用key1和key2作为键。

推荐的腾讯云相关产品:腾讯云缓存Redis,详情请参考腾讯云缓存Redis产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Bean 放入 Spring 容器中五种方式 !

来源:blog.csdn.net/weixin_43741092/article/details/120176466/ bean放入Spring容器中有哪些方式?...我们知道平时在开发中使用Spring时候,都是将对象交由Spring去管理,那么一个对象加入到Spring容器中,有哪些方式呢,下面我就来总结一下 1、@Configuration + @Bean...3、@Import注解导入 前两种方式,大家用可能比较多,也是平时开发中必须要知道,@Import注解用可能不是特别多了,但是也是非常重要,在进行Spring扩展时经常会用到,它经常搭配自定义注解进行使用...只是Spring处理方式不同,它和Spring Boot中自动导入配置文件 延迟导入有关,非常重要。...最终成功person加入到applicationContext中,上述几种方式具体原理,我后面会进行介绍。

29420

如何从两个List中筛选出相同

问题 现有社保卡和身份证若干,想要匹配筛选出一一对应社保卡和身份证。 转换为List socialList,和List idList,从二者中找出匹配社保卡。...采用Hash 通过观察发现,两个list取相同部分时,每次都遍历两个list。那么,可以把判断条件放入Hash中,判断hash是否存在来代替遍历查找。...如此推出这种做法时间复杂度为O(m,n)=2m+n. 当然,更重要是这种写法更让人喜欢,天然不喜欢嵌套判断,喜欢扁平化风格。...事实上还要更快,因为hash还需要创建更多对象。然而,大部分情况下,n也就是第二个数组长度是大于3。这就是为什么说hash要更好写。...当然,另一个很重要原因是lambda stream运算符号远比嵌套循环让人喜爱。

6K90

老生常谈,判断两个区域是否具有相同

标签:Excel公式练习 这个问题似乎很常见,如下图1所示,有两个区域,你能够使用公式判断它们是否包含相同吗?...如果两个区域包含相同,则公式返回TRUE,否则返回FALSE。 关键是要双向比较,即不仅要以range1为基础和range2相比,还要以range2为基础和range1相比。...最简洁公式是: =AND(COUNTIF(range1,range2),COUNTIF(range2,range1)) 这是一个数组公式,输入完后要按Ctrl+Shift+Enter组合。...看到了吧,同样问题,各种函数各显神通,都可以得到想要结果。仔细体味一下上述各个公式,相信对于编写公式水平会大有裨益。 当然,或许你有更好公式?欢迎留言。...注:有兴趣朋友可以到知识星球完美Excel社群下载本文配套示例工作簿。

1.7K20

Spring Cache优化

spring cache spring cache是spring框架自带一套缓存框架,其具有多种实现,比较常用是基于Redis实现,其核心注解有 @CacheConfig,@Cacheable,@...CachePut,@CacheEvict,不熟悉用法可以参考官方文档,有很详细说明,https://docs.spring.io/spring-framework/docs/current/reference...spring cache具有极高易用性,在保存缓存时能够根据Spring EL表达式自由定制缓存,但是spring cache在使用过程中有两点缺陷: 在使用@CacheEvict时,如果指定了allEntries...(RetentionPolicy.RUNTIME) @Documented @CachePut public @interface ICachePut { /** * 缓存名字(缓存前缀..., attribute = "cacheResolver") String cacheResolver() default ""; /** * 判断是否放入缓存条件,使用Spring

68720

【SpringCache】快速入门 通俗易懂

开启缓存注解功能,通常加在启动类上 @Cacheable 在方法执行前先查询缓存中是否有数据,如果有数据,则直接返回缓存数据;如果没有缓存数据,调用方法并将方法返回放到缓存中 @CachePut 方法返回放到缓存中...导入进来工程结构如下: 数据库准备: 创建名为spring_cache_demo数据库,springcachedemo.sql脚本直接导入数据库中。...@CachePut注解 @CachePut 说明: 作用: 方法返回放入缓存 value: 缓存名称, 每个缓存名称下面可以有很多key key: 缓存key ----------> 支持Spring...save方法上加上注解 @CachePut,用法如下: /** * CachePut方法返回放入缓存 * value:缓存名称,每个缓存名称下面可以有多个key * key:缓存key...后面再查询相同id,就直接从Redis中查询数据,不用再查询数据库了,就说明缓存生效了。

10710

Spring Cache抽象-缓存注解

文章目录 概述 Spring缓存基本原理 @Cacheable :主要针对方法配置,能够根据方法请求参数对其结果进行缓存 生成器 带条件缓存 @Cacheable 注解参数说明 示例-缓存管理器为...缓存基本原理 和 spring 事务管理类似,spring cache 关键原理就是 spring AOP,通过 spring AOP,其实现了在方法调用前、调用后获取方法入参和返回,进而实现了缓存逻辑...@CachePut首先执行方法,然后返回放入缓存。...当希望使用方法返回来更新缓存时可以选择这种方法 如果使用了 @Cacheable 注释,则当重复使用相同参数调用方法时候,方法本身不会被调用执行,即方法本身被略过了,结果直接从缓存中找到并返回了。...当我们想要指定相同类型多个注释(例如同一方法@CacheEvict或@CachePut)时,@Caching注释很方便。 假设我们有两个包含相同产品缓存,使用相同key。

79920

缓存抽象层Spring cache实战操作

Spring Cache 只负责维护抽象层,具体实现由你技术选型来决定。缓存处理和缓存技术解除耦合。 2.主要依赖 Spring cache 抽象由spring-context相关组件实现。...对于一个支持缓存方法,Spring会在其被调用后将其返回缓存起来,以保证下次利用同样参数来执行该方法时可以直接从缓存中获取结果,而不需要再次执行该方法。...Spring在缓存方法返回时是以键值对进行缓存就是方法返回结果。...两者都可以执行缓存放入”操作,不同于@Cacheable,@CachePut每次都将执行方法并将返回K-V放入缓存,如果该K存在则进行更新。其他属性可参考Cacheable。...该注解有两个特别的属性: allEntries 是否清空所有缓存内容,缺省为 false,如果指定为 true,则方法调用后立即清空所有缓存。注意不能跟key参数同时使用。

71610

Spring boot缓存使用

就像我们可以从方法请求中指定缓存,如果没有指定,spring使用所有类字段并将其用作缓存(主要是HashCode)来维护缓存,但我们可以通过提供关键信息来覆盖此行为: @Cacheable(value...有时我们需要手动操作缓存,这样可在方法调用之前put(更新)缓存,这个方法让我们更新缓存,并且执行被注释该方法,Spring执行注释方法,并将其结果放入缓存中(根据@CachePut选项)。...它与@Cacheable支持相同选项,应该用于缓存填充,而不是方法流优化。 请注意,通常不鼓励对同一方法使用@CachePut和@Cacheable注释,因为它们具有不同行为。...我们可以在这里指定来删除缓存,如果我们需要删除缓存所有条目,那么我们需要使用allEntries=true。...@Caching 当同时需要CachePut和CacheEvict时,使用这个注释。 Spring启动提供与以下缓存提供程序集成。

90210

Spring Cache-缓存注解(二)

文章目录 导读 概述 注解@Cacheable 和@CachePut 表达式引用 注解@CacheEvict 案例 导读 Spring-Cache手札 Spring Cache抽象-缓存注解 实战...,而是缓存读出,返回给调用者;如果没有找到缓存,那么 Spring 就会执行你方法,最后结果通过 key 保存到缓存服务器中 @CachePut Spring 会将该方法返回缓存到缓存服务器中...---- 注解@Cacheable 和@CachePut 因为@Cacheable 和@CachePut 两个注解配置项 比较接近,所以这里就将这两个注解一并来看 属性 配置类型 说明 value String...key unless String Spring 表达式,如果表达式返回为 true,则不会将方法结果放到缓存上 value 和 key 这两个属性使用得最多,所以先来讨论这两个属性。...如上代码所示定义redisCacheManager后就可以引用它了,而对于 key 则是缓存中,它支持 Spring 表达式,通过 Spring 表达式就可以自定义缓存 key。

34120

springcache清除缓存_什么叫做缓存数据

大家好,又见面了,我是你们朋友全栈君。 概述 从 spring3 开始,spring 开始支持缓存组件,并提供了一系列非常方便注解。...第一次执行时候,会将方法结果存入缓存,再次调用该方法,在执行前,如果 key 相同则直接返回缓存中数据,不会再次执行方法。...上述一些复杂条件依赖于 sqEl 表达式 /* * 方法调用给前进行检测,若存在 key 对应数据则直接从缓存中返回结果,否则在执行后返回存入缓存 * */ @Override @Cacheable.../* * 调用方法后,再把返回放入缓存 * */ @Override @CachePut(cacheNames = "dept",key = "#root.targetClass") public List...他主要属性就两个: allEntries:是否清空全部缓存数据。

2.9K10

cacheable更新_详解Spring缓存注解@Cacheable,@CachePut , @CacheEvict使用

不同是,它每次都会触发真实方法调用 @CachePut 作用和配置方法 参数 解释 example value 缓存名称,在 spring 配置文件中定义,必须指定至少一个 @CachePut(...”,condition=”#userName.length()>2”) 实例 @CachePut 注释,这个注释可以确保方法被执行,同时方法返回也被记录到缓存中,实现缓存与数据库同步更新。...)判断condition,如果返回true,则放入缓存; @CachePut(value = “user”, key = “#id”, condition = “#result.username ne...={“cache1”, “cache2”})),则有两个cache root.caches[0].name argument name 执行上下文 当前被调用方法参数,如findById(Long...如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站立刻删除。

3.2K20

整合@Cache 和 Redis

对于缓存声明,spring缓存提供了一组java注解: @Cacheable:触发缓存写入。 @CacheEvict:触发缓存清除。 @CachePut:更新缓存(不会影响到方法运行)。...@Cacheable注解 顾名思义,@Cacheable可以用来进行缓存写入,结果存储在缓存中,以便于在后续调用时候可以直接返回缓存中,而不必再执行实际方法。...@Cacheable缓存名称是可以配置动态参数,比如选择传入参数,如下: (以下示例是使用SpEL声明,如果您不熟悉SpEL,可以阅读Spring Expression Language) @Cacheable...@CachePut注解 @CachePut:当需要更新缓存而不干扰方法运行时 ,可以使用该注解。也就是说,始终执行该方法,并将结果放入缓存,注解参数与@Cacheable相同。...因为这个方法我们定了两个value,清了一个还有一个 清除缓存...

67110

Spring思维导图,让Spring不再难懂(cache篇)

关于缓存 缓存是实际工作中非常常用一种提高性能方法。而在java中,所谓缓存,就是程序或系统经常要调用对象存在内存中,再次调用时可以快速从内存中获取对象,不必再去创建新重复实例。...) TTI(Time To Idle) 空闲期,即一个数据多久没被访问将从缓存中移除时间 项目中可能有很多缓存TTL不相同,这时候就需要编码式使用编写缓存。...(#result就能拿到返回值了)判断condition,如果返回true,则放入缓存 @CachePut(value = "user", key = "#id", condition = "#result.username...,如果返回false,则放入缓存;(即跟condition相反) @CachePut(value = "user", key = "#user.id", unless = "#result.username...-- --> 当然,可以通过其他配置搭配使用两个缓存机制。

71570

Spring原理高级进阶】有Redis为啥不用?深入剖析 Spring Cache:缓存工作原理、缓存注解使用方法与最佳实践

如果缓存中不存在对应缓存,则执行方法体逻辑。方法体执行完毕后,方法返回存入缓存,并关联到对应缓存。...下次相同请求,如果缓存中存在对应缓存,则直接从缓存中获取缓存数据,避免再次执行方法体。...@CachePut:标记方法返回需要被缓存,并将缓存数据写入缓存中。使用@CachePut注解方法始终执行方法体,并将方法返回存入缓存,适用于更新或添加缓存数据场景。...第二次调用getUserById(1L)方法时,直接从缓存中获取结果,不再执行数据库查询操作。 saveUser方法: 该方法使用@CachePut注解,表示会将方法返回存入缓存。...通过以上代码优化,当查询一个不存在产品时,第一次请求会访问数据库,但结果为null,不会将null缓存起来,后续相同请求会直接从缓存中获取数据,避免了缓存穿透问题。

16210
领券