使用带 spring 或 spring 引导的 Redis 时,默认缓存策略是什么?

What is the default cache strategy when using Redis with spring or spring boot?

有多种缓存策略,例如:缓存一旁、通读、直写、后写、绕写。

当 Redis 与 spring boot using spring-boot-starter-data-redis 依赖项一起使用时,默认的缓存策略是什么。这怎么能改变。任何参考将不胜感激。

默认情况下,缓存放在一边,我们在 Spring 启动应用程序中的缓存使用情况与此类似

@Cacheable(cacheNames = "someCache")
public String cacheThis(String id){
    return "this Is it";
}

在spring boot app 的大多数情况下,我们缓存JPA 或其他DB 查询的结果。在这种情况下,我们在查询方法上添加 Cacheable,这为我们提供了缓存功能。

An application can emulate the functionality of read-through caching by implementing the cache-aside strategy. This strategy loads data into the cache on demand.

参考:https://docs.microsoft.com/en-us/azure/architecture/patterns/cache-aside

使用缓存备用模式并不是解决问题的总方法,根据您的用例,您可能必须更改缓存策略。更改缓存策略不是直接的,除了我们从 Spring 框架中知道的一些注释,如

  • 可缓存
  • 缓存清除
  • CachePut

您需要更新您的应用程序代码以使用其他缓存策略,但您可以使用这些注释构建任何缓存策略。如果你不喜欢使用这些注解然后玩实际的缓存对象,任何时候你都可以调用 Cache 方法来修改缓存。

例如

Cache myCache = cacheManager.getCache("myCache"); 

一旦你有了一个缓存对象,你就可以调用所有相关的方法,由于底层缓存的限制,有些方法可能无法正常工作。