Я использую 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.Я беспокоюсь, что это заполнит базу данных большим количеством просроченных данных.Есть ли способ удалить просроченные объекты.