[分享]redis increment实现分部署锁
@Autowired
private RedisTemplate redisTemplate;
/**
* 加锁
*/
public boolean getLock(String key) {
try {
long count = redisTemplate.opsForValue().increment(key, 1);
if(count == 1){
//设置有效期2秒
redisTemplate.expire(key, 2, TimeUnit.SECONDS);
return true;
}else{
long time = redisTemplate.getExpire(key,TimeUnit.SECONDS);
if(time == -1){
//设置失败重新设置过期时间
redisTemplate.expire(key, 2, TimeUnit.SECONDS);
return true;
}
}
//如果存在表示重复
return false;
} catch (Exception e) {
logger.error("redis加锁异常", e);
redisTemplate.delete(key); //出现异常删除锁
return true;
}
}
原文:https://blog.csdn.net/u011974797/article/details/81238079
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术