redis分布式锁中的几个问题

  1. 如何避免死锁?

可重入性:setnx方法可以设置过期时间,避免业务操作执行出错,死锁问题导致锁无法释放;

  1. 如何保证线程A不删掉线程B的锁?

在setnx方法中生一个唯一的值,在删除锁时,判断值,是否与本线程的一致,一致则删除;

  1. 如何解决过期时间到了,业务还没有执行完?

Redisson实现了watchdog机制,每隔10秒,判断业务还没有执行完,再续10秒;

  1. 如何解决加锁和删锁的多个操作的原子性问题?

Redis支持执行lua脚本,可以将逻辑写在一个lua脚本中,保证原子性。

猜你喜欢

转载自blog.csdn.net/weixin_42465316/article/details/105460092
今日推荐