特点:
互斥:根据redis中的hashkey是否存在确定锁是否被占用
重入:锁是通过redis hash实现的,线程信息放入key中,相同线程可以重入
防止死锁:设置超时时间,防止死锁;同时看门狗(WatchDog)避免超时引发的锁失效。
性能考虑:
1 尽量减少锁定范围,只将必要的代码放入锁代码块中
2 减少锁的力度,只锁定有并发问题的资源,比如操作用户的积分,只锁定一个具体的用户,而不是所有用户
使用lua脚本,可以保证原子操作
本文深入探讨了基于Redis的分布式锁的实现原理,包括其互斥性、重入性及防止死锁的特性。通过设置超时时间和利用看门狗机制避免锁失效,确保系统的稳定运行。文章还强调了性能优化策略,如减小锁定范围和力度,以及使用Lua脚本保证原子操作。
特点:
互斥:根据redis中的hashkey是否存在确定锁是否被占用
重入:锁是通过redis hash实现的,线程信息放入key中,相同线程可以重入
防止死锁:设置超时时间,防止死锁;同时看门狗(WatchDog)避免超时引发的锁失效。
性能考虑:
1 尽量减少锁定范围,只将必要的代码放入锁代码块中
2 减少锁的力度,只锁定有并发问题的资源,比如操作用户的积分,只锁定一个具体的用户,而不是所有用户
使用lua脚本,可以保证原子操作
985

被折叠的 条评论
为什么被折叠?