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

相关推荐
后端小张18 小时前
基于飞算AI的图书管理系统设计与实现
spring boot
考虑考虑2 天前
Jpa使用union all
java·spring boot·后端
阿杆2 天前
同事嫌参数校验太丑,我直接掏出了更优雅的 SpEL Validator
java·spring boot·后端
昵称为空C3 天前
SpringBoot3 http接口调用新方式RestClient + @HttpExchange像使用Feign一样调用
spring boot·后端
麦兜*3 天前
MongoDB Atlas 云数据库实战:从零搭建全球多节点集群
java·数据库·spring boot·mongodb·spring·spring cloud
麦兜*3 天前
MongoDB 在物联网(IoT)中的应用:海量时序数据处理方案
java·数据库·spring boot·物联网·mongodb·spring
汤姆yu3 天前
基于springboot的毕业旅游一站式定制系统
spring boot·后端·旅游
计算机毕业设计木哥3 天前
计算机毕设选题推荐:基于Java+SpringBoot物品租赁管理系统【源码+文档+调试】
java·vue.js·spring boot·mysql·spark·毕业设计·课程设计
凯子坚持 c3 天前
精通 Redis list:使用 redis-plus-plus 的现代 C++ 实践深度解析
c++·redis·list
第七序章3 天前
【C++STL】list的详细用法和底层实现
c语言·c++·自然语言处理·list