面试题:分布式锁用了 Redis 的什么数据结构

在使用 Redis 实现分布式锁时,通常使用 Redis 的字符串(String)。Redis 的字符串是最基本的数据类型,一个键对应一个值,它能够存储任何形式的字符串,包括二进制数据。字符串类型的值最多可以是 512MB。

Redis 实现分布式锁的本质,就是在 Redis 里面占一个"茅坑",当别的进程也来占坑时,发现已经有进程蹲在那里了,就只好放弃或者稍后再试。

  • set 命令加锁
    • lockname:锁的名字 (键)
    • true:是锁的状态(值)
    • EX 5:设置这个键的过期时间为5秒。这意味着如果锁的持有者没有在5秒内释放锁(比如因为崩溃或其他原因),锁会自动被释放,以防止死锁
    • NX(Not Exist):保证只有当 lockname 不存在时,即锁未被其他客户端持有时,当前操作才会成功设置键,从而实现加锁。如果锁已经存在,则命令不会执行任何操作。
java 复制代码
SET lockname true EX 5 NX 
  • 释放锁
java 复制代码
DEL lockname


图片来源于悟空聊架构

相关推荐
wafrdggh13 分钟前
2026电商快递批量查询怎么用?固乔助手模板设置评测
大数据·数据库·小程序
一个天蝎座 白勺 程序猿1 小时前
KingbaseES数据库归档重做日志文件管理:从配置到运维的实战指南
运维·数据库·oracle·kingbasees·金仓数据库
龙腾AI白云4 小时前
仿真到现实(Sim-to-Real)迁移:跨越仿真与现实鸿沟
数据库·机器学习·plotly·知识图谱·tornado
freejackman6 小时前
【实战二】字段级血缘追踪:拆解 AST 迷局,精准穿透函数链与子查询
大数据·数据库·sql
.痞老板.8 小时前
mysql初阶--增删改查操作
数据库·mysql
我不会起名字32212 小时前
Redis 从 0 到 1(三十三):机器断电 Redis 起不来——AOF/RDB 损坏的 4 步抢救流程
redis·数据恢复·aof·rdb·排查
lambo mercy13 小时前
AI智能租房助手
数据库
浮生若城14 小时前
MySQL:库与表的操作
数据库·mysql
薛定谔的悦14 小时前
光储充一体机从主控到执行单元的双层架构
数据库·mongodb·架构
数字新视界14 小时前
动环监控信创适配在智能机房管理中的应用价值与未来展望
大数据·服务器·数据库·动环监控系统·动力与环境监控系统