分布式锁Redisson vs 原生 SETNX原生 SETNX 四大缺陷① 死锁服务宕机没释放锁key 永久存在其他线程永远拿不到锁② 不可重入同一个线程重复加锁直接阻塞自身拿不到锁③ 锁超时误删线程 A 的锁过期线程 B 拿到锁A 执行完删锁会删掉 B 的锁④ 无自动续期业务执行时间超过锁过期时间锁提前失效并发安全失效Redisson 看门狗机制客户端加锁成功后会启动一个后台定时线程看门狗每隔锁过期时长的 1/3 时间自动延长锁的过期时间 如果主线程业务执行完成主动释放锁看门狗线程直接停止 如果业务一直没执行完就持续续期避免锁提前过期。 看门狗专门解决原生 SETNX没有自动续期的问题。小总结单纯用 SETNX 写锁漏洞特别多程序崩了锁就卡死、同一个代码里重复加锁直接卡住、还容易把别人的锁删掉业务跑久一点锁直接失效。Redisson 自带看门狗后台自动给锁续命上面这些问题一次性全部解决所以项目开发统一用 Redisson。原生锁四大坑死锁、不可重入、误删、无续期Redisson 看门狗自动续命
Redis--分布式锁:Redisson vs 原生 SETNX
分布式锁Redisson vs 原生 SETNX原生 SETNX 四大缺陷① 死锁服务宕机没释放锁key 永久存在其他线程永远拿不到锁② 不可重入同一个线程重复加锁直接阻塞自身拿不到锁③ 锁超时误删线程 A 的锁过期线程 B 拿到锁A 执行完删锁会删掉 B 的锁④ 无自动续期业务执行时间超过锁过期时间锁提前失效并发安全失效Redisson 看门狗机制客户端加锁成功后会启动一个后台定时线程看门狗每隔锁过期时长的 1/3 时间自动延长锁的过期时间 如果主线程业务执行完成主动释放锁看门狗线程直接停止 如果业务一直没执行完就持续续期避免锁提前过期。 看门狗专门解决原生 SETNX没有自动续期的问题。小总结单纯用 SETNX 写锁漏洞特别多程序崩了锁就卡死、同一个代码里重复加锁直接卡住、还容易把别人的锁删掉业务跑久一点锁直接失效。Redisson 自带看门狗后台自动给锁续命上面这些问题一次性全部解决所以项目开发统一用 Redisson。原生锁四大坑死锁、不可重入、误删、无续期Redisson 看门狗自动续命