Redis分布式锁正确的实现方法

编程

加锁、解锁代码

public void sync(String lockKey) {

    boolean check = false;

    try {

        check = redisTemplate.opsForValue().setIfAbsent(lockKey, true);

        if(check){

            log.info("处理业务……");

        }

    } catch (Exception exception) {

        log.error(ToolsUtil.getStackMessage(exception));

    } finally {

        if(check){

            redisTemplate.delete(lockKey);

        }

    }

}

第一步,设置一个变量check,标记加锁标识。
第二步,我们尝试用lockKey作为Redis的Key进行上锁动作,因为Key是唯一的,如果返回true则加锁成功,如果返回false则代表加锁失败。
第三步,判断变量check是否为true,如果为true代表lockKey被上锁并且是我们自己上锁,进行业务操作。
第四步,判断变量check是否为true,如果为true代表lockKey被上锁并且是我们自己上锁,则进行解锁。

以上是 Redis分布式锁正确的实现方法 的全部内容, 来源链接: utcz.com/z/513002.html

回到顶部