2015-10-17 119 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; 
}