首页 > 数据库 >Redis中是如何实现分布式锁的?

Redis中是如何实现分布式锁的?

时间:2023-03-16 12:00:45浏览次数:74  
标签:加锁 实现 中是 Redis 分布式 客户端

分布式锁常见的三种实现方式:

  • 数据库乐观锁;
  • 基于Redis的分布式锁;
  • 基于ZooKeeper的分布式锁。

Redis要实现分布式锁,以下条件应该得到满足:

  • 互斥性:在任意时刻,只有一个客户端能持有锁。
  • 不能死锁:客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。
  • 容错性:只要大部分的Redis节点正常运行,客户端就可以加锁和解锁。

实现方式

  • 通过 set key value px milliseconds nx 命令实现加锁, 通过Lua脚本实现解锁。
  • Redisson实现

 

参考:

标签:加锁,实现,中是,Redis,分布式,客户端
From: https://www.cnblogs.com/xfeiyun/p/17222002.html

相关文章

  • 安装redis
    redis安装brewsearchredis  brewinstallredis (这里安装的是redis的最新版本,因为没有@)执行完毕之后,就完成了redis的安装。redis服务默认是安装在`/usr/local/Ce......
  • Redis查询大key
    原文安装wget"https://pypi.python.org/packages/68/44/5efe9e98ad83ef5b742ce62a15bea609ed5a0d1caf35b79257ddb324031a/redis-2.10.5.tar.gz#md5=3b26c2b9703b4b56b30......
  • #认识Redis
    Redis(全称:RemoteDictionaryServer远程字典服务)是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它是......
  • Redis基础知识
    IO多路复用IO:I/O是Input输入/Output输出的简称,通常指数据在内部存储器(内存)和外部存储器(硬盘、优盘)或其他周边设备之间的输入和输出。  输入/输出是信息处理系统(计算机)......
  • 狂神--Redis-Docker启动脚本
    1.docker版本20dockerinfoClient:Context:defaultDebugMode:falsePlugins:app:DockerApp(DockerInc.,v0.9.1-beta3)buildx:BuildwithBuil......
  • Minio分布式文件系统
    Minio分布式文件系统注意:192.168.118.35是我的虚拟机ip,使用的时候记得改成自己的拉取minio镜像dockerpullminio/minio系统环境基本配置cat>>/etc/sysctl.conf......
  • 初级 - redis 安装
    1、redis概述redis官网地址:https://redis.io/redisgithub地址:https://github.com/redis/redis/tree/6.22、redis安装2.1redisdocker-compose安装1、先去gith......
  • docker redis常用命令
    一、dockerredis服务部署1.下载官方redis镜像dockerpullredis2.运行镜像,返回容器id。此时redis服务已经开启dockerrun-d-p6379:6379redis3.进入容器(客户端......
  • Mac安装Redis
    Mac安装Redis1、首先,检查是否已经安装Homebrew,如果没有安装Homebrew,请先安装,我这里推荐安装国内的Homebrew会快一些,打开Mac终端输入国内npm即可安装,命令由于太敏感,可以......
  • docker 启动redis
    1、拉取最新镜像dockerpullredis2、启动redisdockerrun-d-v/data/redis:/data--nameredis-p6379:6379redisredis-server--requirepass"xx.com"--appe......