分布式锁2:基于redis实现分布式锁

一 redis实现分布式锁

1.1 原理

setnx+expire+del 命令实现redis的分布式锁;其中 setnx 不存在则新增;存在则忽略。即先用setnx来抢锁,如果抢到之后,再用expire给锁设置一个过期时间,防止锁忘记了释放。例如:

setnx lock 111 ex 20 nx

**但是如果expire无法执行, 会导致死锁,**redis中setnx+expire是非原子操作, 除了用LUA脚本保证实现原子操作, 其实可以直接使用redis自带的set方法直接实现.

相关推荐
xxjj998a几秒前
从MySQL迁移到PostgreSQL的完整指南
数据库·mysql·postgresql
Three~stone2 分钟前
MySQL Workbench 8.0.45 安装教程[附安装包]
数据库·mysql
炸炸鱼.4 分钟前
MySQL 高可用实战(主主复制 + Keepalived+HAProxy)
数据库·mysql·adb
大空大地202612 分钟前
数据访问技术
数据库
天草二十六_简村人23 分钟前
阿里云SLS采集jvm日志(上)
java·运维·数据库·后端·阿里云·容器·云计算
Java面试题总结1 小时前
MongoDB(70)如何使用副本集进行备份?
数据库·mongodb
荒川之神1 小时前
Oracle LEVEL 函数练习(HR 模式 employees 表)
数据库·oracle
TDengine (老段)1 小时前
TDengine IDMP 工业数据建模 —— 元素与数据查询
大数据·数据库·人工智能·物联网·时序数据库·tdengine·涛思数据
蜡台1 小时前
Mysql 安装与配置
数据库·mysql