RedisTemplate操作key
操作key的失效时间
-
RedisTemplate.expire(String key, long timeout, TimeUnit unit)
RedisTemplate.boundValueOps(String key).expire( long timeout, TimeUnit unit)
设置key的失效时间,timeout是时间参数,timeunit是时间单位,返回值是布尔 -
RedisTemplate.expireAt(String key, Date date)
redisTemplate.boundValueOps(String key).expireAt(Date date)
设置key在一个时间点失效,返回值是布尔 -
RedisTemplate.getExpire(String key)
redisTemplate.boundValueOps(String key).getExpire()
获取key的存活时间,返回值是long -
RedisTemplate.getExpire(String key, TimeUnit timeUnit)
获取key的存活时间,返回指定时间单位,返回值是long
public void testExpire() {
// 获取当前key的失效时间
long time1 = redisTemplate.boundValueOps("testExpire").getExpire();
long time1A = redisTemplate.getExpire("testExpire");
System.out.println(time1);
System.out.println(time1A);
// 重置失效时间为一天
boolean result = redisTemplate.boundValueOps("testExpire").expire(24 * 3600, TimeUnit.SECONDS);
long time2 = redisTemplate.boundValueOps("testExpire").getExpire();
System.out.println(time2);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
long time3 = redisTemplate.boundValueOps("testExpire").getExpire();
System.out.println(time3);
Calendar c = Calendar.getInstance();
c.add(Calendar.DATE, 1);
boolean expireAt = redisTemplate.boundValueOps("expireAt").expireAt(c.getTime());
long time4 = redisTemplate.boundValueOps("expireAt").getExpire();
System.out.println(time4);
long time5 = redisTemplate.getExpire("expireAt", TimeUnit.MINUTES);
System.out.println(time5);
}
输出:
85630
85630
86400
86398
86401
1440