Redis-分布式锁(基本原理和不同实现方式对比)

1、基本原理

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

分布式锁的核心思想就是让大家都使用同一把锁,只要大家使用的是同一把锁,那么我们就能锁住线程,不让线程进行,让程序串行执行,这就是分布式锁的核心思路

在这里插入图片描述
在这里插入图片描述
那么分布式锁他应该满足一些什么样的条件呢?

可见性:多个线程都能看到相同的结果,注意:这个地方说的可见性并不是并发编程中指的内存可见性,只是说多个进程之间都能感知到变化的意思

互斥:互斥是分布式锁的最基本的条件,使得程序串行执行

高可用:程序不易崩溃,时时刻刻都保证较高的可用性

安全性:安全也是程序中必不可少的一环

在这里插入图片描述

2、不同实现方式

常见的分布式锁有三种

  • Mysql:mysql本身就带有锁机制,但是由于mysql性能本身一般,所以采用分布式锁的情况下,其实使用mysql作为分布式锁比较少见
    Redis:redis作为分布式锁是非常常见的一种使用方式,现在企业级开发中基本都使用redis或者zookeeper作为分布式锁,利用setnx这个方法,如果插入key成功,则表示获得到了锁,如果有人插入成功,其他人插入失败则表示无法获得到锁,利用这套逻辑来实现分布式锁
    Zookeeper:zookeeper也是企业级开发中较好的一个实现分布式锁的方案

在这里插入图片描述

相关推荐

  1. RedisRedis分布式基本原理具体实现

    2024-07-10 09:48:02       16 阅读
  2. 基于redis分布式实现方案

    2024-07-10 09:48:02       39 阅读
  3. ZookeeperRedis分别实现分布式原理

    2024-07-10 09:48:02       21 阅读
  4. MySQL、Redis Zookeeper 实现分布式方法及优缺点

    2024-07-10 09:48:02       20 阅读
  5. redis分布式-----基于RedLock算法实现分布式

    2024-07-10 09:48:02       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 09:48:02       4 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 09:48:02       5 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 09:48:02       4 阅读
  4. Python语言-面向对象

    2024-07-10 09:48:02       4 阅读

热门阅读

  1. MySQL 聚合函数

    2024-07-10 09:48:02       7 阅读
  2. 在Spring Boot中实现RESTful API设计

    2024-07-10 09:48:02       8 阅读
  3. XML的两种常用的模式定义方式

    2024-07-10 09:48:02       7 阅读
  4. Linux系统管理面试题

    2024-07-10 09:48:02       9 阅读
  5. IO练习网络爬虫获取

    2024-07-10 09:48:02       11 阅读
  6. C++设计模式---备忘录模式

    2024-07-10 09:48:02       6 阅读
  7. WHAT - React useEffect 依赖的 Object.is

    2024-07-10 09:48:02       8 阅读