分布式锁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方法直接实现.

相关推荐
骑着王八撵玉兔23 分钟前
【非关系型数据库Redis 】 入门
java·数据库·spring boot·redis·后端·缓存·nosql
阳光开朗_大男孩儿2 小时前
QT_BEGIN_NAMESPACE 和 QT_END_NAMESPACE(一)
开发语言·数据库·qt
YashanDB3 小时前
【YashanDB知识库】启动yasom时报错:sqlite connection error
数据库·yashandb·崖山数据库
DATA无界3 小时前
抢先体验:人大金仓数据库管理系统KingbaseES V9 最新版本 CentOS 7.9 部署体验
linux·数据库·centos
2301_775602383 小时前
简易内存池
java·服务器·数据库
zhujyy1104 小时前
Django 中数据库迁移命令
数据库·sqlite
一二小选手4 小时前
【Redis】万字整理 Redis 非关系型数据库的安装与操作
java·数据库·redis
m0_748255264 小时前
Redis四种模式在Spring Boot框架下的配置
spring boot·redis·bootstrap
我是苏苏5 小时前
ABP框架8——仓储的作用及其基础Demo
数据库·mysql
NHuan^_^5 小时前
RabbitMQ基础篇之数据隔离
分布式·rabbitmq