Redis实现分布式锁

Redis实现分布式锁,第1张

什么是分布式锁

如果不同的系统或同一个系统的不同主机之间共享了某个资源时,往往需要互斥来防止彼此干扰来保证一致性。

Redis实现分布式锁时的问题
  • 原子性

    使用lua脚本

  • 没有释放锁

    设置lock的过期时间

  • 释放别人的锁

    为保证只释放自己加的锁,位lockKey设置唯一id, 释放时先判断再释放

  • 大量失败的请求

    使用自旋,或阻塞一段时间后再次抢锁

  • 主从复制问题

    redisson框架为了解决这个问题,提供了一个专门的类:RedissonRedLock,使用了Redlock算法

  • 可重入

    并发遇见并发,抢锁之后判断是否是自己加过的锁

  • 锁超时

    如果达到超时时间,但业务还未执行完,需要给锁续期

  • 效率问题

    使用更细粒度的锁:读写锁

    锁分段

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/919714.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存