问题描述
有多种缓存策略,例如:备用缓存,直读,直写,在后写,在四周写。
当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
,这为我们提供了缓存备用功能。
应用程序可以模拟通读缓存的功能 通过实施缓存备用策略。此策略加载数据 按需进入缓存。
参考:https://docs.microsoft.com/en-us/azure/architecture/patterns/cache-aside
使用备用缓存模式并非始终解决问题的方法,具体取决于您的用例,您可能必须更改缓存策略。除了我们从Spring框架中了解到的一些注释(如
)外,更改缓存策略并非一帆风顺- 可缓存
- CacheEvict
- CachePut
您可以更新应用程序代码以使用其他缓存策略,尽管您可以使用这些注释构建任何缓存策略。如果您不想使用这些注释,则可以使用实际的缓存对象,可以随时调用Cache方法来修改缓存。
例如
Cache myCache = cacheManager.getCache("myCache");
一旦有了缓存对象,就可以调用所有相关方法,由于底层缓存的限制,某些方法可能无法按预期工作。