设置失效时间失效的问题

public void setAliToken(String token) {
		String key = RedisKeyPrefix.MAN_MACHINE_ALI_TOKEN;
		redisTemplate.expire(key, 10, TimeUnit.MINUTES);
		redisTemplate.opsForValue().set(key,token);
	}

在你的代码示例中,设置 Redis 中键的过期时间与设置键的值是两个独立的操作。问题在于你首先设置了键的过期时间,然后立即设置了键的值,这可能导致键的过期时间被重置。在 Redis 中,如果你对一个键进行重新赋值,那么与该键相关的过期时间将被移除,除非你显式地再次设置它。

要修正这个问题,你应该在设置键的值之后设置过期时间。这样可以确保键的过期时间在键值更新后依然有效。修改后的代码如下所示:

public void setAliToken(String token) {
    String key = RedisKeyPrefix.MAN_MACHINE_ALI_TOKEN;
    redisTemplate.opsForValue().set(key, token);
    redisTemplate.expire(key, 10, TimeUnit.MINUTES);
}

这样修改后,先设置键的值,然后立即设置该键的过期时间,这可以确保即使键值被更新,过期时间也不会被重置或删除。

相关推荐

  1. 设置失效时间失效问题

    2024-04-23 18:32:04       32 阅读
  2. 一次事务失效问题排查

    2024-04-23 18:32:04       49 阅读
  3. Docker 设置 Redis 密码失效

    2024-04-23 18:32:04       40 阅读
  4. 查找 Oracle 数据库中对象失效原因和时间

    2024-04-23 18:32:04       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-23 18:32:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-23 18:32:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-23 18:32:04       82 阅读
  4. Python语言-面向对象

    2024-04-23 18:32:04       91 阅读

热门阅读

  1. 算法刷题记录 Day50

    2024-04-23 18:32:04       30 阅读
  2. RedisTemplate 与StringRedisTemplate区别

    2024-04-23 18:32:04       32 阅读