我将 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; ... ...}资料库@Repositorypublic interface UserRepository extends CrudRepository<User, String> {}Redis 的配置@Configurationpublic 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 中。我担心这会用大量过期数据填充数据库。有没有办法删除过期的实体。
添加回答
举报
0/150
提交
取消