自学内容网 自学内容网

Redis——分布式锁

基本原理

分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的锁

为什么要有分布式锁?

在只有一台服务器提供服务的情况下,乐观锁和悲观锁足以解决线程并发导致的问题。但是企业开发中避免不了需要部署多台服务器,即采用分布式系统或集群模式,这时,多台服务器就有多个jvm,对应多个锁监视器,它们之间是独立了,服务器之间的线程并不会共享锁信息,此时很可能会出现并发问题,很容易想到一个解决办法就是将让所有线程共享一个锁监视器,这就是我们分布式锁的基本思路。

核心思想

分布式锁的核心思想就是让大家都使用同一把锁,这样我们就可以不让线程并行,而是让程序串行执行
在这里插入图片描述

分布式锁应该满足的特点

  • 高可用性
  • 多线程可见
  • 互斥
  • 高性能
  • 安全性
    在这里插入图片描述

常见的分布式锁

在这里插入图片描述
不同的分布式锁有不同的特点,对应不同的应用场景,没有绝对的优劣之分,我们要根据不同场景选择合适的分布式锁。

Redis中分布式锁的实现方式

实现分布式锁时需要实现的两个基本方法:

  • 获取锁:

    • 互斥:确保只能有一个线程获取锁
    • 非阻塞:尝试一次,成功返回true,失败返回false
  • 释放锁:

    • 手动释放
    • 超时释放:获取锁时添加一个超时时间
      在这里插入图片描述

原文地址:https://blog.csdn.net/m0_73731267/article/details/142260950

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!