我有一个Spring Boot Web应用程序,并使用带有redis存储的spring会话。 Web请求有时需要缓存它们的响应(以避免不必要的数据库跳转)并且我计划使用咖啡因 然而,似乎Redis接管(一旦我包含gradle依赖)作为缓存实现,因为我的所有TTL设置都被忽略了。
在Spring Boot应用程序中使用多个缓存提供程序是否可行/可推荐? 我可以尝试将Redis用于所有缓存,只是担心它会影响Spring Boot附带的会话实现(我没有配置只使用@EnableRedisHttpSession的任何东西)。
我对此有任何建议。
答案 0 :(得分:1)
您可以将单独的缓存管理器与@Cacheable
:
@RequestMapping(value = "/hello/{name}", method = RequestMethod.GET)
@Cacheable(key = "#name", cacheManager = "caffeineCacheManager")
public String greeet(@PathVariable String name) {
return "Hello " + name;
}
并且您唯一需要的是将缓存管理器作为命名bean:
@Bean
@Qualifier("caffeineCacheManager")
AbstractCacheManager caffeineCacheManager() {
return new CaffeineCacheManager();
}