2017-06-15 4 views
0

私はSpringブートWebアプリケーションを持っており、SpringセッションをRedisストアとともに使用しています。 Webリクエストでは、時にはレスポンスをキャッシュする必要があり(不要なdbの移動を避けるため)、私はカフェインを使用する予定です。
しかし、カフェイン用のすべてのTTLセットが無視されるため、Redisはキャッシングの実装として(グラブの依存性を含めるとすぐに)引き継ぎます。複数のキャッシュマネージャを並列に起動する

Springブートアプリケーションで2つ以上のキャッシュプロバイダを使用することも可能ですか、推奨できますか?私はRedisをすべてのキャッシュに使用しようとする可能性があります。ちょうどそれがSpringブートに付属しているセッションの実装に影響することを心配しています(@EnableRedisHttpSessionを使用したものは設定しませんでした)。

これに関するアドバイスをいただきありがとうございます。

+1

[検出順序]があります(https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-caching.html#_supported_cache_providers)。 Spring Cacheは複数のキャッシュマネージャを許可するように設計されているので、大丈夫だと私は理解しています。 –

答えて

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(); 
} 
関連する問題