【Spring boot】RedisTemplate中String、Hash、List设置过期时间

文章目录

前言

时间类型:TimeUnit

java 复制代码
import java.util.concurrent.TimeUnit;

TimeUnit.SECONDS:秒
TimeUnit.MINUTES:分
TimeUnit.HOURS:时
TimeUnit.DAYS:日
TimeUnit.MILLISECONDS:毫秒
TimeUnit.MILLISECONDS:微秒
TimeUnit.NANOSECONDS:纳秒

Redis中String设置时间的方法

java 复制代码
redisTemplate.opsForValue().set("loginCode","254588",2, TimeUnit.SECONDS);//过期时间2秒
redisTemplate.opsForValue().set("loginCode","254588",2, TimeUnit.MINUTES);//过期时间2分钟
redisTemplate.opsForValue().set("loginCode","254588",2, TimeUnit.HOURS);//过期时间2小时
redisTemplate.opsForValue().set("loginCode","254588",2, TimeUnit.DAYS);//过期时间2天

Redis中Hash和List设置时间的方法

Java对于Redis的封装不是能满足所有的业务需求的,但是我们可以通过lua脚本来直接向Redis发送命令从而保证原子性;

下面这两句话,可以实现向Redis插入Hash数据,并且设置整个Hash的过期时间。

putIfAbsent 指的是如果传入key对应的value已经存在,就返回存在的value,不进行替换。如果不存在,就添加key和value,返回null。意思就是如果没有才插入。

java 复制代码
boolean a = redisTemplate.opsForHash().putIfAbsent(name, k, v);
boolean b = redisTemplate.expire(name, keepTime, TimeUnit.SECONDS);

Redis中Hash的put、putAll、putIfAbsent区别

put

向Redis添加单个key、hashKey、hashValue

putAll

添加整个hash

putIfAbsent

如果传入key对应的value已经存在,就返回存在的value,不进行替换。如果不存在,就添加key和value,返回null。

相关推荐
changhong19866 小时前
如何在 Spring Boot 中配置数据库?
数据库·spring boot·后端
月月玩代码8 小时前
Actuator,Spring Boot应用监控与管理端点!
java·spring boot·后端
Java程序之猿9 小时前
SpringBoot + camel+IBM MQ实现消息队列处理
java·spring boot·mybatis
z_鑫9 小时前
SpringCloud FeignClient 中 Bean 重复注册冲突解决方案解析
java·spring boot·spring cloud
Amour恋空9 小时前
SpringBoot+Lombok+Logback实现日志
spring boot·后端·logback
孫治AllenSun9 小时前
【线程池】优化等待队列和拒绝策略
java·spring boot·spring cloud
毕设源码-邱学长10 小时前
【开题答辩全过程】以 基于Spring Boot的体育场地预约管理系统为例,包含答辩的问题和答案
java·spring boot·后端
摇滚侠11 小时前
讲一讲 SpringMVC,线程变量 ThreadLocal 的使用
java·spring boot·intellij-idea
j_xxx404_12 小时前
力扣困难算法精解:串联所有单词的子串与最小覆盖子串
java·开发语言·c++·算法·leetcode·哈希算法
一叶落43814 小时前
LeetCode 219. 存在重复元素 II(C语言详解)
算法·哈希算法·散列表