首页 > 数据库 >redis分布式锁

redis分布式锁

时间:2022-10-19 08:11:36浏览次数:40  
标签:加锁 redis Redis 实例 分布式 客户端

1.分布式锁的含义

分布式锁其实就是控制分布式系统不同进程共同访问共享资源的一种锁的实现。如果不同的系统或同一个系统的不同主机之间共享了某个临界资源,往往需要互斥来防止彼此干扰,以保证一致性。

在分布式锁方面, Redis有广泛应用, 日常开发中分布式锁的一些常见常见有秒杀下单、抢红包等等。

 

 2.分布式锁方案

一些比较常见的分布式锁方案

SETNX + EXPIRE

SETNX + value值是(系统时间+过期时间)

SET EX PX NX + 校验唯一随机值,再释放锁

多机实现的分布式锁Redlock

ZooKeeper实现分布式锁

使用数据库实现分布式锁

3.redis实现分布式锁

Redis 实现分布式锁的方式名叫Redlock

a)、客户端先获取「当前时间戳T1」
b)、客户端依次向这 5 个 Redis 实例发起加锁请求(用前面讲到的 SET 命令),且每个请求会设置超时时间(毫秒级,要远小于锁的有效时间),如果某一个实例加锁失败(包括网络超时、锁被其它人持有等各种异常情况),就立即向下一个 Redis 实例申请加锁
c)、如果客户端从 >=3 个(大多数)以上 Redis 实例加锁成功,则再次获取「当前时间戳T2」,如果 T2 - T1 < 锁的过期时间,此时,认为客户端加锁成功,否则认为加锁失败
d)、加锁成功,去操作共享资源(例如修改 MySQL 某一行,或发起一个 API 请求)
e)、加锁失败,向「全部节点」发起释放锁请

参考:https://blog.csdn.net/q66562636/article/details/124739036

标签:加锁,redis,Redis,实例,分布式,客户端
From: https://www.cnblogs.com/northli/p/16804890.html

相关文章

  • 分布式理论----CAP理论与Base理论
    CAP理论【1】CAP理论指出对于一个分布式计算系统来说,不可能同时满足以下三点:1)一致性:在分布式环境中,一致性是指数据在多个副本之间是否能够保持一致的特性,......
  • 基于Redis实现的优惠券秒杀业务
    全局唯一Id生成器为实现唯一性、递增性、安全性、高可用、高性能,能支持未来大量订单业务的订单id的快速生成,给出一种id生成的方法。代码实现packagecom.hmdp.utils;......
  • 伪分布式运行模式
    启动HDFS并运行MapReduce程序配置集群1.core-site.xml指定HDFS中NameNode的地址。<property> <name>fs.defaultFS</name> <value>hdfs://nodeb1(主机名):9000</value......
  • MAC m1使用homebrew安装redis报错
    报错信息tar:Erroropeningarchive:Failedtoopen'/Users/peas/Library/Caches/Homebrew/downloads/df016fccee96887f4f24a989ec9b08c04eef867bfb15f67a6e5eee58f6ce......
  • 自定义RedisUtils个工具类
    网上有很多可以自行查询;1、狂神的RedisUtil点击查看代码//在我们真实的开发中,或者在公司,一般都可以看到一个公司自己封装的Utils工具~~@ComponentpublicclassRedis......
  • Windows中redis未授权通过dll劫持上线
    转自https://mp.weixin.qq.com/s/U-UD7h92fEJzCjyGbgF4Og前言项目中时不时会遇到windows的redis未授权,利用dll劫持可以不用重启获取shell。本文参考网上师傅们的文章详细......
  • ubuntu18安装redis后未开机启动Could not connect to Redis at 127.0.0.1:6379: Conne
    阿里云ubuntu18安装redis后,aptinstallredis-serverredis-cli提示CouldnotconnecttoRedisat127.0.0.1:6379:Connectionrefused最终发现是两方面导致:1.ubuntu18......
  • 从混合云到分布式云 (上篇)
      一、混合云混合云是一种云的使用模式,即用户同时使用私有云和公有云。在Flexera发布的《StateoftheCloudReport2022》报告中,类似且比较容易混淆的云使用模式还......
  • 完全分布式运行模式
    完全分布式运行模式配置步骤1.准备三台客户机关闭防火墙静态IP主机名2.安装JDK3.配置环境变量4.安装Hadoop5.配置环境变量6.配置集群7.单点启动8.配置SSH9.集......
  • Couchbase 中的分布式储存
    Couchbase中的分布式储存概述Couchbase是一个具有高性能、可扩展性和可用性强的数据库引擎。它可以让开发人员通过NoSQL的键值存储(二进制或者JSON)或者使用N1QL的形式......