RedisLock分布式redis锁
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,@Componentpublic class RedisLock {Logger logger= LoggerFactory.getLogger(RedisLock.class);private st
千家信息网最后更新 2025年02月04日RedisLock分布式redis锁
@Component
public class RedisLock {
Logger logger= LoggerFactory.getLogger(RedisLock.class);
private static final String LOCK_SUCCESS = "OK";
private static final String SET_IF_NOT_EXIST = "NX";//NX是毫秒,EX是秒
private static final String SET_WITH_EXPIRE_TIME = "PX";
/** * 尝试获取分布式锁 * @param lockKey 锁 * @param requestId 请求标识 * @param expireTime 超期时间 * @return 是否获取成功 */public boolean tryGetDistributedLock(String lockKey, String requestId, int expireTime) { Jedis jedis=null; try{ jedis = Const.jedisPoolCommon.getResource(); String result =jedis.set(lockKey, requestId, SET_IF_NOT_EXIST, SET_WITH_EXPIRE_TIME, expireTime); if (LOCK_SUCCESS.equals(result)) { return true; } }catch (Exception ex){ logger.error("tryGetDistributedLock异常"+ex); }finally { if(jedis!=null){ jedis.close(); } } return false;}private static final Long RELEASE_SUCCESS = 1L;/** * 释放分布式锁 * @param lockKey 锁 * @param requestId 请求标识 * @return 是否释放成功 */public boolean releaseDistributedLock( String lockKey, String requestId) { Jedis jedis = null; try{ jedis=Const.jedisPoolCommon.getResource(); String script = "if redis.call('get', KEYS[1]) == ARGV[1] then return redis.call('del', KEYS[1]) else return 0 end"; Object result = jedis.eval(script, Collections.singletonList(lockKey), Collections.singletonList(requestId)); if (RELEASE_SUCCESS.equals(result)) { return true; } }catch (Exception ex){ logger.error("releaseDistributedLock异常"+ex); }finally { if(jedis!=null){ jedis.close(); } } return false;}
}
分布式
成功
标识
时间
尝试
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
易语言 数据库 查询
数据库触发器实现更新
承德有没有做软件开发的
dw连接php数据库
大厂软件开发工程师面试
做服务器的市场
xml更改默认数据库
建材商城开发装修软件开发
快手校招软件开发工程师
嵌入式软件开发商排名榜
软件开发项目管理师报名
柯桥浙光小学网络安全
数据库汽车销售管理系统需求分析
内蒙古特殊软件开发
软件开发最好的技校
软件开发类毕业论文正式中文版
仪器的上位机软件开发
qt数据库编程图解
云服务器过期如何删除硬盘
国家网络安全周总结
吉利软件开发
当前学生网络安全知识手抄报
e网络安全视频教程
网易服务器的32k都是哪来的
css网络安全
众利zlc软件开发
济南有招聘软件开发的吗
互联网科技有哪些技术
门诊挂号系统网络技术
数据库怎么重复复制