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

相关推荐
前进的李工16 小时前
SQL聚合函数与分组查询详解
数据库·sql·mysql
Li_76953216 小时前
Redis 进阶(一) —— 持久化
redis
2301_8000509918 小时前
mysql
数据库·笔记·mysql
数据皮皮侠18 小时前
2m气温数据集(1940-2024)
大数据·数据库·人工智能·制造·微信开放平台
Psycho_MrZhang18 小时前
Redis 设计思想总结
数据库·redis·缓存
曹牧19 小时前
Java:Assert.isTrue()
java·前端·数据库
你不是我我20 小时前
【Java 开发日记】我们来说一说 Redis 主从复制的原理及作用
java·redis·github
程序员葫芦娃20 小时前
【Java毕设项目】基于SSM的旅游资源网站
java·开发语言·数据库·编程·课程设计·旅游·毕设
Yuer202520 小时前
用 Rust 做分布式查询引擎之前,我先写了一个最小执行 POC
开发语言·分布式·rust
2401_8658548820 小时前
怎样挑选适合业务的数据库云服务?
数据库