将Redis与spring或spring boot一起使用时,默认的缓存策略是什么?

问题描述

有多种缓存策略,例如:备用缓存,直读,直写,在后写,在四周写。

当Redis与spring-boot-starter-data-redis依赖项一起用于Spring Boot时,默认的缓存策略是什么。以及如何改变。任何参考将不胜感激。

解决方法

默认情况下,您没有使用缓存,我们在Spring Boot应用程序中的缓存使用情况与此类似

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

在spring boot应用程序的大多数情况下,我们都会缓存JPA或其他数据库查询的结果。在这种情况下,我们在查询方法上添加Cacheable,这为我们提供了缓存备用功能。

应用程序可以模拟通读缓存的功能 通过实施缓存备用策略。此策略加载数据 按需进入缓存。

Cache Aside

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

使用备用缓存模式并非始终解决问题的方法,具体取决于您的用例,您可能必须更改缓存策略。除了我们从Spring框架中了解到的一些注释(如

)外,更改缓存策略并非一帆风顺
  • 可缓存
  • CacheEvict
  • CachePut

您可以更新应用程序代码以使用其他缓存策略,尽管您可以使用这些注释构建任何缓存策略。如果您不想使用这些注释,则可以使用实际的缓存对象,可以随时调用Cache方法来修改缓存。

例如

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

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...