分布式锁实战

4、分布式锁

4.1 、基本原理和实现方式对比

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

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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么分布式锁他应该满足一些什么样的条件呢?

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

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

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

高性能:由于加锁本身就让性能降低,所有对于分布式锁本身需要他就较高的加锁性能和释放锁性能

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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

常见的分布式锁有三种

Mysql:mysql本身就带有锁机制,但是由于mysql性能本身一般,所以采用分布式锁的情况下,其实使用mysql作为分布式锁比较少见

Redis:redis作为分布式锁是非常常见的一种使用方式,现在企业级开发中基本都使用redis或者zookeeper作为分布式锁,利用setnx这个方法,如果插入key成功,则表示获得到了锁,如果有人插入成功,其他人插入失败则表示无法获得到锁,利用这套逻辑来实现分布式锁

Zookeeper:zookeeper也是企业级开发中较好的一个实现分布式锁的方案,由于本套视频并不讲解zookeeper的原理和分布式锁的实现,所以不过多阐述

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

相关推荐

  1. Zookeeper实现分布式(Zk分布式

    2024-04-07 01:58:01       39 阅读
  2. Zookeeper实现分布式

    2024-04-07 01:58:01       40 阅读
  3. Redis实现分布式

    2024-04-07 01:58:01       46 阅读
  4. Mysql实现分布式

    2024-04-07 01:58:01       43 阅读
  5. Redis分布式实现

    2024-04-07 01:58:01       49 阅读
  6. Redisson 实现分布式

    2024-04-07 01:58:01       49 阅读

最近更新

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

    2024-04-07 01:58:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-07 01:58:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-07 01:58:01       87 阅读
  4. Python语言-面向对象

    2024-04-07 01:58:01       96 阅读

热门阅读

  1. 数据库第四次作业

    2024-04-07 01:58:01       44 阅读
  2. linux命令大全(涵盖所有命令)

    2024-04-07 01:58:01       45 阅读
  3. ffplay用硬件进行编解码的命令的探索:

    2024-04-07 01:58:01       36 阅读
  4. 通过 ffmpeg命令行 调节视频播放速度

    2024-04-07 01:58:01       146 阅读
  5. Linux高级IO——多路转接之select

    2024-04-07 01:58:01       153 阅读
  6. 子集(迭代)(leetcode 78)

    2024-04-07 01:58:01       40 阅读
  7. 我的创作纪念日

    2024-04-07 01:58:01       46 阅读
  8. Redis7的10大应用场景和案例解析

    2024-04-07 01:58:01       154 阅读
  9. [深度学习]yolox训练参数含义

    2024-04-07 01:58:01       45 阅读
  10. LeetCode //C - 278. First Bad Version

    2024-04-07 01:58:01       40 阅读
  11. C++ vector

    2024-04-07 01:58:01       41 阅读
  12. UD浏览器多线程支持的设置

    2024-04-07 01:58:01       32 阅读
  13. vuex和pinia

    2024-04-07 01:58:01       38 阅读