簡體   English   中英

Spring Data Store Redis-使用多個緩存

[英]Spring Data Store Redis - Use Multiple Caches

我有一個由兩個Web服務器,兩個Redis緩存和一個后端存儲組成的應用程序。 為了優化性能,兩個Web服務器和兩個Redis緩存位於西海岸和東海岸。 到目前為止,我已經能夠從Web服務器連接到我的第一個緩存,並連接到后端存儲。 但是我正在尋找一種使用Spring將數據推送到兩個Redis緩存的方法。 我已經如下配置了我的兩個RedisManager。

@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);
}

有什么簡單的方法可以使用Spring嗎?

Dan Ciborowski-見這里...

http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#cache-annotations-caching

Spring參考說明了如何使用@Caching組合多個Spring Cache Abstraction批注(例如@Cacheable@CachePut等)。

因此,對於可緩存,您可以執行以下操作。

    @Caching(cacheable = {@Cacheable("CacheManager1"), @Cacheable("CacheManager2")})
    public ActivityProfile findActivityProfile(String id) {
        return activityProfileRepository.findOne(id);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM