RedisLock分布式redis锁
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,@Componentpublic class RedisLock {Logger logger= LoggerFactory.getLogger(RedisLock.class);private st
千家信息网最后更新 2025年12月03日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安全错误
数据库的锁怎样保障安全
软件开发合同外包
美信网络技术公司靠谱吗
登陆lol无法连接服务器
甘肃肃南网络安全
中山无限软件开发定做价格
云服务器上登qq安全吗
细胞干预数据库
服务器日期转换成客户机日期
网络技术服务器命令
亚马逊数据库的建立
软件开发和自学哪个好
软件开发系统价格
开个软件开发外包公司
多玩数据库6.0
软件开发数学需要
侯马软件开发公司
软件开发学习培训班
常用邮件服务器
艾米立互联网科技
工控服务器主机的钥匙是通用的吗
等保测评软件开发不配合
江苏公安系统招聘网络安全人才
为什么要进行网络安全测试
软件开发哪个大学擅长
珠海通讯软件开发平均价格
开传奇服务器
ck数据库适合什么场景
小学网络安全教研活动
网络安全情报不包括
c 定时播放数据库文件