如果最终获取锁失败了(可能由于获取到锁的Redis节点个数少于N/2+1,或者整个获取锁的过程消耗的时间超过了锁的最初有效时间),那么客户端应该立即向所有Redis节点发起 释放锁 的操作(即前面介绍的Redis Lua脚本)。
上面描述的只是 获取锁 的过程,而 释放锁 的过程比较简单:客户端向所有Redis节点发起 释放锁 的操作,不管这些节点当时在获取锁的时候成功与否。
总结到这里redis分布式锁就讲完了,具体使用哪一种类型的分布式锁需要看公司业务的,流量大的可以使用RedLock实现分布式锁,流量小的可以使用redisson,后面会讲解Zookeeper实现分布式锁,喜欢的小伙伴可以关注我,对本文内容有疑问或者问题的同学可以留言,小农看到了会第一时间回复,谢谢大家,大家加油