Redis实现分布式锁(setnx方式、配合lua脚本、Redisson方式)

1 setnx实现分布式锁

​ setnx实现分布式锁的原理:共享资源互斥、共享资源串行化。单应用中使用锁:(单进程多线程)synchronized、ReentrantLock。分布式应用中使用锁:(多进程多线程)分布式锁是控制分布式系统之间同步访问共享资源的一种方式。利用Redis的单线程特性对共享资源进行串行化处理。

1.1 获取锁

​ 本例子都是基于redisTemplate作为操作类来进行操作,讲解下面三个获取锁的方式。

方式一:

​ 采用redisTemplate.opsForValue().setIfAbsent(lockKey, requestNo, expireTime, timeUnit)的方式,没有该key的时候插入值并设置过期时间,整个步骤在一个原子操作内,推荐使用该方式。

 /**
     * 推荐使用该方式获取锁
     * @param

猜你喜欢

转载自blog.csdn.net/qq_36305027/article/details/126668343