Redis--分布式锁:Redisson vs 原生 SETNX
2026/7/22 20:07:26 网站建设 项目流程

分布式锁:Redisson vs 原生 SETNX

原生 SETNX 四大缺陷

① 死锁:服务宕机没释放锁,key 永久存在,其他线程永远拿不到锁

② 不可重入:同一个线程重复加锁直接阻塞,自身拿不到锁

③ 锁超时误删:线程 A 的锁过期,线程 B 拿到锁,A 执行完删锁,会删掉 B 的锁

④ 无自动续期:业务执行时间超过锁过期时间,锁提前失效,并发安全失效

Redisson 看门狗机制

客户端加锁成功后,会启动一个后台定时线程(看门狗),每隔锁过期时长的 1/3 时间自动延长锁的过期时间; 如果主线程业务执行完成,主动释放锁,看门狗线程直接停止; 如果业务一直没执行完,就持续续期,避免锁提前过期。 看门狗专门解决原生 SETNX没有自动续期的问题。

小总结

单纯用 SETNX 写锁漏洞特别多:程序崩了锁就卡死、同一个代码里重复加锁直接卡住、还容易把别人的锁删掉,业务跑久一点锁直接失效。

Redisson 自带看门狗,后台自动给锁续命,上面这些问题一次性全部解决,所以项目开发统一用 Redisson。

原生锁四大坑:死锁、不可重入、误删、无续期;Redisson 看门狗自动续命

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询