面试真题

数据库 · 中等 · 闪送

Redis分布式锁的实现

中等 数据库 🎤 闪送
参考答案
结论:基于SET key value NX PX与Lua脚本实现分布式锁。核心要点:1. 获取锁:SET lock:resource <唯一ID> NX PX 30000,利用Redis单线程互斥;2. 释放锁:Lua脚本先GET比对value再DEL,保证原子性防误删;3. 设置过期时间避免死锁;4. 未获锁可短休眠重试。示例:获取锁命令SET lock:order UUID NX PX 10000;释放脚本if redis.call('get',KEYS[1])==ARGV[1] then return redis.call('del',KEYS[1]) else return 0 end。该方案高性能但需注意锁续期。
题目整理自公开面经,答案由校招宝自研生成,仅供参考