Spring:为什么有多个缓存

时间:2017-10-27 16:47:51

标签: java spring performance caching spring-boot

我正在通过Spring的缓存抽象功能和this线引起了我的注意

  

虽然在大多数情况下,只声明了一个缓存,但注释允许   要指定多个名称,以便存在多个缓存   使用

以上行是指其文档中的上述声明后面的代码段。

@Cacheable({"books", "isbns"})
public Book findBook(ISBN isbn) {...}

为什么需要为同一方法提供多个缓存?对于需要缓存的每个行为(函数),单个缓存是否足够?什么是适当的用例呢?

1 个答案:

答案 0 :(得分:3)

多个缓存名称意味着检查两个/每个缓存,如果在任何缓存中找到所需的密钥,则返回缓存的值并且不调用方法体。

一个可能的用例是当您拥有从不同来源填充的缓存(例如数据库加载和在线/休息服务调用)时,您必须同时检查这两个缓存。

事实上,在大多数情况下,只有一个缓存就足够了。