redis的分布式锁

 nadia     2022-06-14     768     0   

欢迎来到银盒子的世界~

最简单的,就是自己设置一个key,然后,给key设置一个ttl,等key失效了,key就是过期了,然后客户端就没法获取到了。再复杂一点的,redis提供了一个分布式锁的思路,使用 Redis | 的分布式锁雷迪斯,然后基于这个思路,有两个github上的项目,实现了这个思路。如下:

pottery:GitHub - brainix/pottery: Redis for humans. 🌎🌍🌏

redlock:GitHub - SPSCommerce/redlock-py:Python中的Redis分布式锁

这个redlock使用方法还是挺简单的,所以直接去看他们的readme的使用方法就可,所以这里不过多阐述,只说明一下他的逻辑。

要想实现安全可靠的分布式锁,需要满足一下三点:

安全属性:相互排斥。在任何给定时刻,只有一个客户端可以持有锁。
活动属性 A:无死锁。最终,始终可以获取锁定,即使锁定资源的客户端崩溃或被分区也是如此。
活动属性 B:容错。只要大多数 Redis 节点都处于启动状态,客户端就能够获取和释放锁。

发表评论