Redis分布式锁的实现原理

1.利用setnx(key,str)即SET If Not eXists来实现分布式锁

if(!jedis.exists(key)) {

                String str=SerializeUtil.serializeObject(value);

                Long status=jedis.setnx(key,str);

                if(status==1) {

                jedis.expire(key,seconds);

                    return true;

                } else {

                    return false;

                }

            }

2.运用redis锁的boilerplate

boolean lock=redisUtil.redisLock(key,value,expire);

if(lock){//如果成功获取锁

    //do  something you want to do

    redisUtil.redisUnlock(key);

}

你可能感兴趣的:(Redis分布式锁的实现原理)