系列文章目录
【redis】redis分布式锁(一)手写分布式锁1.0~6.0
【redis】redis分布式锁(二)可重入锁+设计模式
前言
一、CAP
redis集群 AP
在主节点set的值,但是在复制给从机过程中宕机了,这时候从机上位是不能获取这个值的
ZooKeeper集群 CP 数据一致性
CP:
故障:牺牲了高可用,即在一台master宕机后,选举新master时,zk服务不可用
Eureak集群 AP
AP:
nacos集群 AP
二、lua脚本
脚本:if redis.call('HEXISTS',KEYS[1],ARGV[1]) == 1 then return redis.call('expire',KEYS[1],ARGV[2]) else return 0 end
三、融合进业务类
在锁的代码
主线程代码
执行:
四、redis分布式锁的总结
V1.0 和 V2.0 单机锁
V3.0 和 V4.0 finally删除锁、自旋、过期时间、lua脚本保证原子化执行
V5.0 和 V6.0 5.0删除锁时需要同时判断锁是否为自己的,6.0unlock用到lua脚本原子化执行。至此,小厂可以使用V6.0版本。
文章来源:https://www.toymoban.com/news/detail-431246.html
V7.0 可重入锁 使用hset来替代原来的setnx、lua脚本、以及实现Lock接口的AQS规范、工厂模式的引入
文章来源地址https://www.toymoban.com/news/detail-431246.html
V8.0 自动续期 保证锁在业务类执行期间不会过期,自动续期
到了这里,关于【redis】redis分布式锁(三)自动续期的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!