首页 > Spring > 当前页面

redis分布式锁如果redis挂掉了,怎么办?

2026-07-06 NEW个对象

Redis 分布式锁的主要风险是主从切换导致锁丢失。官方推荐使用 RedLock 来降低风险,但在极端情况下仍不能保证绝对一致性。


如果业务对一致性要求非常高,更推荐使用 ZooKeeper 分布式锁。ZooKeeper 获取锁时需要监听 ConnectionLoss 和 SessionExpired 两类事件:连接丢失后主动确认是否真正获取到锁;Session 过期后立即停止业务处理,并结合 Fencing Token 防止失效客户端继续写入数据,从而保证数据的一致性。


如果客户端发生了长时间的 Full GC(Stop-The-World),看门狗线程可能无法按时发送续期指令,导致锁意外过期。此外,在 Redis 主从切换的瞬间,续期指令也可能丢失。

相关文章

  • Mybatis DataPermissionInterceptor实现数据权限详解

    面试中如果能够讲清楚Interceptor拦截原理、BoundSql修改流程、JSqlParser解析机制以及Mybatis-Plus DataPermissionInterceptor实现原理,基本可以覆盖绝大多数中高级Java岗位的数据权限相关问题。

    NEW个对象 2026-06-14

  • redis分布式锁如果redis挂掉了,怎么办?

    redis暂时没有很好的解决方案,可以红锁来解决,但是红锁的建设成本太高。 红锁其实就是,配置多个redis mater环境,比如有5个,如果从3个redis mater里获取到了锁,则算成功。

    NEW个对象 2026-07-06

  • Agent权限机制的理解

    1、基于RBAC + OAuth2 + JWT的认证、权限机制 2、在请求agent之前进行权限校验,使用preauthorize注解 3、将用户的权限信息,存起来,比如:ThreadLocal里获取其它里面 4、在请求tool的时候,进行权限认证。 5、如果是mcp请求,则请求体里带上凭证。

    NEW个对象 2026-06-30

NEW个对象 NEW个对象
JAVA是世界上最好的语言

推荐文章