- 准备N个(N>=3)独立的Redis节点或实例,它们之间不进行数据同步。
- 客户端获取当前时间戳T,并生成一个唯一随机值V作为锁的标识。
- 客户端依次向N个节点发送SETNX命令,尝试设置相同的键K和值V,并设置过期时间E(单位为毫秒)。
- 客户端计算从发送命令到接收响应所消耗的时间D,并判断是否有至少N/2+1个节点成功加锁。
- 如果成功加锁,则客户端认为已经获得了分布式锁,并设置锁的有效时间为E-D(单位为毫秒)。
- 如果失败加锁,则客户端向所有节点发送DEL命令,尝试删除键K,并放弃执行业务逻辑。
免责声明:
本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail:master@freevpsweb.com