基于redis实现分布式锁的方式
1、编写工具类
可以获取和释放锁
public class RedisLockUtil {
/**
* 尝试获取分布式锁
* @param jedis Redis客户端
* @param lockKey 锁
* @param requestId 请求标识
* @param expireTime 超期时间
* @return 是否获取成功
*/
private static final String LOCK_SUCCESS ="OK";
private static final String SET_IF_NOT_EXIST ="NX";
private static final String SET_WITH_EXPIRE_TIME ="PX";
private static Jedis jedis=new Jedis();
public static boolean tryGetDistributeLock(String lockKey,String requestId,int expireTime){
String result =jedis.set(lockKey, requestId, SET_IF_NOT_EXIST, SET_WITH_EXPIRE_TIME, expireTime);
if (LOCK_SUCCESS.equals(result)){
return true