#java #spring #spring-boot #redis
#java #весна #весенняя загрузка #redis
Вопрос:
Я установил срок действия для ключа ‘editorial’ на одну минуту, и кэширование не удалялось из базы данных Redis
@Primary
@Bean(name = "redisTemplate")
public RedisTemplate<String, Object> redisTemplate() throws Exception {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
redisTemplate.setConnectionFactory(jedisConnectionFactory());
redisTemplate.afterPropertiesSet();
redisTemplate.expire("editorial", 1, TimeUnit.MINUTES);
redisTemplate.expire("s3-files", 5, TimeUnit.MINUTES);
initRedisSerializer(redisTemplate);
return redisTemplate;
}
Ответ №1:
Redis не выполняет физическое удаление в реальном времени, когда срок действия ключа истек.
Вместо этого он выполняет что-то вроде пассивного удаления. В соответствии с другой стратегией удаления с истекшим сроком действия, при необходимости выполняется операция удаления. Вы можете проверить это здесь (https://www.programmersought.com/article/64021141500 /)
Но, если вы попытаетесь прочитать ключ с истекшим сроком действия, вы его не получите.