Spring Cache + Redis缓存不基于方法/类名称计算键

我正在将reisson与jcache抽象一起使用,简单地说就是这样:

public class MyService{

      @Cacheable("cacheA")
      public String returnSomethingAfterLongTime(String parameter){
               //...
      }

      @Cacheable("cacheA")
      public String returnSomethingElse(String parameter){

      }
}

问题是它们两个都创建了一个redis键,例如“ cacheA :: parameter”,换句话说,类和方法名未考虑在内。

如果字符串“ parameter”是一个常用词,则会引起问题,因为我必须知道使用“ cacheA”的代码的每个部分,以确保不会由于以下事实而导致效率低下:可以在呼叫之间复制“参数”键。

我在做错什么吗?

lw1197 回答:Spring Cache + Redis缓存不基于方法/类名称计算键

您似乎可以指定“键”属性,以根据方法名称对其进行自定义以进行缓存。

Spring Cacheable key attribute

this帖子中有很多很好的例子和答案。

我从来没有亲自使用过Spring Cache,但是看起来您可以指定@Cacheable("cacheA",key="#parameter"),并且参数的 value 将用作键而不是单词“ parameter”。

本文链接:https://www.f2er.com/2662376.html

大家都在问