Spring并行多个缓存管理器

时间:2017-06-15 15:13:31

标签: spring spring-mvc spring-boot redis caffeine

我有一个Spring Boot Web应用程序,并使用带有redis存储的spring会话。 Web请求有时需要缓存它们的响应(以避免不必要的数据库跳转)并且我计划使用咖啡因 然而,似乎Redis接管(一旦我包含gradle依赖)作为缓存实现,因为我的所有TTL设置都被忽略了。

在Spring Boot应用程序中使用多个缓存提供程序是否可行/可推荐? 我可以尝试将Redis用于所有缓存,只是担心它会影响Spring Boot附带的会话实现(我没有配置只使用@EnableRedisHttpSession的任何东西)。

我对此有任何建议。

1 个答案:

答案 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();
}