REDIS

Redis实战15-Redis实现分布式锁思路

在上一篇文章中(Redis实战14-分布式锁基本原理和不同实现方式对比),我们介绍了为什么在集群或者分布式环境下,JVM级别的锁会失效,什么是分布式锁,分布式锁需要满足哪些条件以及实现分布式锁的三种常见方案,同时对三种实现方案做了对比。那么本文,咱们就来讲讲基于Redis实现分布式锁思路。实现分布式锁时候,需要实现两个基本的方法获取锁和释放锁获取锁获取锁时候需要考虑互斥和非阻塞。互斥:确保只能有一

在上一篇文章中(Redis实战14-分布式锁基本原理和不同实现方式对比),我们介绍了为什么在集群或者分布式环境下,JVM级别的锁会失效,什么是分布式锁,分布式锁需要满足哪些条件以及实现分布式锁的三种常见方案,同时对三种实现方案做了对比。那么本文,咱们就来讲讲基于Redis实现分布式锁思路。

实现分布式锁时候,需要实现两个基本的方法

获取锁和释放锁

获取锁

获取锁时候需要考虑互斥和非阻塞。

互斥:确保只能有一个线程获取锁;

在Redis中获取锁,利用的是shetNx的互斥特性

253597b09190a2985b31058d7c685eca.png

演示setnx命令:

ddad4d33a5ebeaa5a63d869acc6991cb.png

非阻塞:尝试异常,成功返回true.失败返回false.

释放锁

手动释放:

d78d75984a37d6ce77ceddd8d23d899e.png

a4f7ac06e1c00689d0b539c8bdddc0b7.png

如果在手动释放的时候,服务宕机了怎么办?可以添加一个

原创不易,完成人机校验,阅读全文

相关推荐