redis排它锁
2021/6/9 19:25:19
本文主要是介绍redis排它锁,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言
因公司项目要求需要定时批量客户进行推送消息,此小项目为单体架构,非分布式项目,但是基于spring-session-data-redis做了session共享进行了多部署,客户的消息推送只能推一次。
可以将推送过的客户存入redis每次验证当前用户是否已经推送过,但是多项目定时任务中业务需要需要大量查询,所以为了减轻数据库的压力,使用redis做排它锁
redis排它锁:在多项目部署时,定时任务执行的时候只能由一个定时任务获取锁,其它定时任务等待,获取锁的执行完成后进行标记执行完毕,其它定时任务则跳过执行;
setIfAbsent:设置一个带有过期时间的key,如果设置成功,则获得了分布式锁,如果key已存在则等待,直到key过期。
1、创建redis工具类
@Component public class RedisLockUtils { @Autowired private StringRedisTemplate redisTemplate; public boolean getLock(String lockKey, String dateTime,long millisecond) { //获取到锁 Boolean success = redisTemplate.opsForValue().setIfAbsent(lockKey, "lock",millisecond, TimeUnit.MILLISECONDS); //判断标识是否存在,存在标识已经执行成功,删除锁 if(redisTemplate.hasKey(lockKey+dateTi
这篇关于redis排它锁的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-31Tiny RDM:你的下一代Redis桌面GUI神器-icode9专业技术文章分享
- 2024-03-21redisinsight-v2
- 2024-02-26Typed property App\Api\Mapper\GamePropsConfigMapper::$apiRedis must not be accessed before initia-icode9专业技术文章分享
- 2024-02-21redisson getlock
- 2024-02-20redis config
- 2024-02-20redis leaderboard
- 2024-01-23缓存选型:Redis or MemCache
- 2024-01-22面试官:Redis持久化能关吗?怎么关?
- 2024-01-21Redis压测工具redis-benchmark-icode9专业技术文章分享
- 2024-01-19这才是你应该了解的Redis数据结构!