Redis по-прежнему возвращает нулевые записи, даже если срок их действия истек - PullRequest
1 голос
/ 17 мая 2019

Я использую Spring Repositories вместе с Redis и хочу хранить данные о пользователе в течение 10 секунд и удалять их (и удалять) из redis.Я знаю, что истекает и удаление отличается, но есть ли простой способ удалить их, как будто я автоматически истекаю.

У меня есть следующая сущность

@RedisHash(value = "User", timeToLive = 10)
public class User {
    @Id
    private String id;
    @Indexed
    @ApiModelProperty(notes = "First name of the user")
    private String firstName;
    @ApiModelProperty(notes = "Last name of the user")
    private String lastName;

    ...
    ...
}

Репозиторий

@Repository
public interface UserRepository extends CrudRepository<User, String> {
}

Конфигурация для Redis

@Configuration
public class RedisConfig {

    @Value("${redis.hostname}")
    private String redisHostname;
    @Value("${redis.port}")
    private int redisPort;

    @Bean
    public JedisConnectionFactory jedisConnectionFactory() {
        RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration(redisHostname, redisPort);
        return new JedisConnectionFactory(redisStandaloneConfiguration);
    }

    @Bean
    public RedisTemplate<String, Object> redisTemplate() {
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(jedisConnectionFactory());
        return template;
    }
}

Когда я получаю все сущности с методом findAll из репозитория, если срок их действия истек, я получаю кучу нулевых значений и вижу, что они находятся в redisс клиентом Redis.Я беспокоюсь, что это заполнит базу данных большим количеством просроченных данных.Есть ли способ удалить просроченные объекты.

1 Ответ

1 голос
/ 17 мая 2019

Когда для истечения задано положительное значение, выполняется соответствующая команда EXPIRE. Помимо сохранения оригинала, в Redis сохраняется фантомная копия, срок действия которой истекает через пять минут после оригинала.

для получения дополнительной информации, пожалуйста, укажите здесь

Надеюсь этот пост поможет вам.

...