2つのWebサーバー、2つのRedisキャッシュ、およびバックエンドストアで構成されるアプリケーションがあります。パフォーマンスを最適化するために、2つのWebサーバーと2つのRedisキャッシュが西海岸と東海岸に配置されています。これまで私は自分の最初のキャッシュ、Webサーバー、バックエンドストアに接続できました。しかし私は、Springを使って両方のキャッシュにデータをプッシュする方法を探しています。私は私のRedisManagersを次のように設定しました。 SpringデータストアRedis - 複数のキャッシュを使用
@Bean(name="CacheManager1")
public RedisCacheManager cacheManager() {
RedisCacheManager redisCacheManager = new RedisCacheManager(redisTemplate());
redisCacheManager.setTransactionAware(true);
redisCacheManager.setLoadRemoteCachesOnStartup(true);
redisCacheManager.setUsePrefix(true);
return redisCacheManager;
}
@Bean(name="CacheManager2")
public RedisCacheManager cacheManager2() {
RedisCacheManager redisCacheManager = new RedisCacheManager(redisTemplate2());
redisCacheManager.setTransactionAware(true);
redisCacheManager.setLoadRemoteCachesOnStartup(true);
redisCacheManager.setUsePrefix(true);
return redisCacheManager;
}
は今、私は両方の場所にキャッシュするためのいくつかのランダムな方法を試してみましたが、この特定の方法は、使用する任意の簡単な方法がある
@Cacheable(cacheManager = "CacheManager1", value = "activityProfile", key = "#id")
@Cacheable(cacheManager = "CacheManager2", value = "activityProfile", key = "#id")
public ActivityProfile findActivityProfile(String id) {
return activityProfileRepository.findOne(id);
}
「キャッシュ可能で反復注釈ではありません」で失敗していますこれのための春?
CacheResolverを構成すると、どちらのキャッシュからもキャッシュを含むリストが返されますか?試していないが、動作する可能性があります。例[ここ](https://jira.spring.io/browse/DATAREDIS-391?focusedCommentId=114319&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-114319) – eis
を作成することができますcacheManagersの配列を取ることができる注釈 –
@ ObiWan-PallavJhaこれに興味があります...しかし、アノテーションに関する私の経験は限られています。私は新しい注釈の作成を始め、私のIDEが私のためにいくつかのアイテムを自動的に生成できるようにしました。しかし、両方のキャッシュに値を設定するために、例えばsetのようなロジックをどこに実装するのかわかりません。私はアノテーションを作成する方法のガイドラインをオンラインで検索し始めていますが、あなたが特に良いガイドを知っているかどうか疑問に思っていただけです。 –