Как иметь два кеша (бэкэнд redis) с разным временем истечения срока действия при весенней загрузке

В моем приложении весенней загрузки (1.2.6) мне нужны разные политики истечения срока действия для разных объектов. Серверная часть кэша — Redis.

Как лучше всего его архивировать?


person Kane    schedule 17.10.2015    source источник


Ответы (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;
}
person Kane    schedule 21.10.2015