【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。

相关推荐
快乐飒男5 小时前
哈希表(c语言)
c语言·哈希算法·散列表
双力臂4046 小时前
Spring Boot 单元测试进阶:JUnit5 + Mock测试与切片测试实战及覆盖率报告生成
java·spring boot·后端·单元测试
itLaity7 小时前
基于Kafka实现简单的延时队列
spring boot·分布式·kafka
midsummer_woo7 小时前
基于spring boot的医院挂号就诊系统(源码+论文)
java·spring boot·后端
tellmewhoisi10 小时前
java8 List常用基本操作(去重,排序,转换等)
java·list
fouryears_2341713 小时前
什么是JSON,如何与Java对象转化
java·spring boot·spring·json
wuk99814 小时前
互联网应用主流框架整合 Spring Boot开发
java·spring boot·后端
风象南14 小时前
SpringBoot实现Serverless:手撸一个本地函数计算引擎
spring boot·serverless
Code季风17 小时前
Spring AOP 与事务管理进阶:传播行为原理与实战指南
java·spring boot·spring
武昌库里写JAVA17 小时前
vue+iview+i18n国际化
java·开发语言·spring boot·学习·课程设计