Redis实现(赋值+过期时间)的原子操作

为什么要设置过期时间?

获取锁的客户端一旦崩溃,如果没有过期机制,其他客户端都降无法获取锁,造成死锁问题,因此要有必要的超时机制,设置过期时间可以通过以下代码

//给baike 设置过期时间 ,单位是milliseconds
stringRedisTemplate.expire("baike",1000 , TimeUnit.MILLISECONDS);



Redis实现(赋值+过期时间)的原子操作

但是如果程序在设置过期时间的代码之前,赋值代码之后出错,还是会导致死锁问题。因此可以让赋值和设置过期时间变成一个原子操作,用以下命令:

//向redis里存入数据和设置缓存时间  
stringRedisTemplate.opsForValue().setIfAbscent("baike", "100", 1000, TimeUnit.MILLISECONDS);
上一篇:使用Kotlin Data类替换Java DTO类的问题


下一篇:爬虫+可视化|爬取「奔跑吧」全系列嘉宾名单,并进行可视化分析