特点:
互斥:根据redis中的hashkey是否存在确定锁是否被占用
重入:锁是通过redis hash实现的,线程信息放入key中,相同线程可以重入
防止死锁:设置超时时间,防止死锁;同时看门狗(WatchDog)避免超时引发的锁失效。
性能考虑:
1 尽量减少锁定范围,只将必要的代码放入锁代码块中
2 减少锁的力度,只锁定有并发问题的资源,比如操作用户的积分,只锁定一个具体的用户,而不是所有用户
使用lua脚本,可以保证原子操作
特点:
互斥:根据redis中的hashkey是否存在确定锁是否被占用
重入:锁是通过redis hash实现的,线程信息放入key中,相同线程可以重入
防止死锁:设置超时时间,防止死锁;同时看门狗(WatchDog)避免超时引发的锁失效。
性能考虑:
1 尽量减少锁定范围,只将必要的代码放入锁代码块中
2 减少锁的力度,只锁定有并发问题的资源,比如操作用户的积分,只锁定一个具体的用户,而不是所有用户
使用lua脚本,可以保证原子操作