2015-10-17 150 views
1

兩個緩存(Redis的後端)具有不同的到期時間在我的春天開機(1.2.6)應用程序,我需要對不同的對象不同的到期政策。緩存後端是redis。如何有春天開機

歸檔它的最佳實踐是什麼?

回答

1

我把它解決了,目前它現在可以工作。

本來我創建了不同的緩存,不同的到期時間,但是這是行不通的。看起來像spring redis緩存不使用緩存實例中指定的過期時間。

不工作

@Bean 
public Cache cacheObjectName(StringRedisTemplate template) { 
    return new RedisCache(CACHE_OBJNAME, CACHE_OBJNAME.getBytes(), template, 10 * 24 * 60 * 60); 
} 

最後我不得不創建不同的緩存管理器具有不同的到期時間,

工作實現

@Bean(name = MANAGER_NAME_1D) 
public CacheManager cacheManager1D(StringRedisTemplate redisTemplate) throws Exception { 
    final RedisCacheManager redisCacheManager = new RedisCacheManager(redisTemplate(factory), Arrays.asList(CACHE_A, CACHE_B)); 
    redisCacheManager.setUsePrefix(true); 
    redisCacheManager.setDefaultExpiration(60 * 60 * 24); 
    return redisCacheManager; 
}