分布式锁以及redis主从结构锁失效问题

在分布式环境中,利用Redis实现锁时,可能出现因请求卡顿导致锁过期失效的问题。为解决此问题,可以使用Redission框架的lock和unlock配合lua脚本确保锁的续命。然而,当Redis主从架构中主节点故障,未同步的数据可能导致锁的安全性降低。对比Zookeeper,Redis更注重可用性(AP),而Zookeeper保证一致性(CP)。为提高安全性,可以考虑使用Redlock(红锁)策略,但会牺牲部分性能。此外,Zookeeper的临时节点和watch功能也能提供锁的可靠性。
摘要由CSDN通过智能技术生成

前提:分布式请求分发在多个服务器上,利用redis进行分布式锁
setnx请求
设置过期时间,以及锁的值是uuid,
执行完成之后删除锁
但是问题是如果调用过程中出现卡顿,锁失效
因此如果没有执行结束就给锁续命
Redission框架的lock与unlock,底层lua脚本

问题:当redis存在主从架构,加锁成功,执行逻辑
此时redis挂掉,信息没有同步给集群,线程二访问到了新的主机,
此时显示没有加锁
又进行了操作,那么出现问题

zookeeper集群与redis区别(cap原则)
redis ap 可用性
zookeeper cp一致性
(当超过半数节点获取到同步消息时才返回信息)

红锁 redlock,超过半数节点加锁(牺牲了性能问题)

 

zookeeper

临时节点与watch功能

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值