Redis分布式锁解锁案例讲解

Redis分布式锁解锁案例讲解

Redis分布式锁解锁案例

相关视频教程(来自动力节点):https://www.bilibili.com/video/BV1Uz4y1X72A

相关资料下载:www.bjpowernode.com/?cnblogs

1、解锁代码

还是先展示代码,再带大家慢慢解释为什么这样实现:

public class RedisTool {
 
    private static final Long RELEASE_SUCCESS = 1L;
 
    /**
     * 释放分布式锁
     * @param jedis Redis客户端
     * @param lockKey 锁
     * @param requestId 请求标识
     * @return 是否释放成功
     */
 
    public static boolean releaseDistributedLock(Jedis jedis, String lockKey, String requestId) {
 
        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;
 
        }
 
        return false;
 
    }
 
}
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » Redis分布式锁解锁案例讲解