细说一下RedisTemplate的使用方法(七)

3,595 阅读2分钟

这是我参与11月更文挑战的第6天,活动详情查看:2021最后一次更文挑战

温故才能知新(复习一下)

上篇文章我们学习了三个方法,还记得是哪几个吗?分别是getExpire(K key)、getExpire(K key, TimeUnit timeUnit)、move三个方法,是否自己进行了一些尝试呢?

今天呢我们要来学习的是哪些呢?来一起学习一下吧。

开始学习,RedisTemplate系列方法之战

delete(K key)

功能描述:删除Redis中的key-value键值对相应的值,是RedisTemplate中提供的一个直接删除Redis相应值的方法。

具体代码使用

/**
 * 删除缓存
 *
 * @param key 可以传一个值 或多个
 */
public void del(String... key) {
    if (key != null && key.length > 0) {
        if (key.length == 1) {
            redisTemplate.delete(key[0]);
        } else {
            redisTemplate.delete(CollectionUtils.arrayToList(key));
        }
    }
}

使用场景:当需要删除的时候,可以使用此方法,比如我们要清理Redis中一些数据时,就需要delete方法了。

源码截图

image.png

expire(K key, long timeout, TimeUnit unit)

功能描述:设置Redis相应key值的失效时间,timeout参数来指定时间数值,unit参数来指定timeout数值的单位。

具体代码使用

/**
 * 指定缓存失效时间
 *
 * @param key  键
 * @param time 时间(秒)
 * @return
 */
public boolean expire(String key, long time) {
    try {
        if (time > 0) {
            redisTemplate.expire(key, time, TimeUnit.SECONDS);
        }
        return true;
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
}

使用场景:设置一个属性值时,必然是要指定缓存失效时间的,不然很容易出现内存占用大的问题。

源码截图

image.png

expireAt(K key, Date date)

功能描述:设置Redis相应key值的失效时间,date参数表示要传入的时间,并且指定在这个时间点上key将失效。

具体代码使用

/**
 * 指定缓存失效时间
 *
 * @param key  键
 * @param date 具体时间
 * @return
 */
public Boolean expireAt(String key, Date date) {
    return redisTemplate.expireAt(key, date);
}

使用场景:expireAt方法的使用场景大家可以自行思考一下,其实也是很常见的。

源码截图

image.png

小结

今天我们学习了RedisTemplate中的delete、expireAt、expire三个方法,你是否有所收获呢?