intermediateRedis — Data Structures, Persistence & Pub/Sub
How do you implement a distributed lock in Redis?
The correct way: SET lock:resource:123 unique_client_id NX EX 30. NX: set only if not exists (atomicity). EX 30: expire in 30 seconds (safety: auto-release if client dies). To release: only release if you own it (check UUID matches). Use Lua script for atomic check-and-delete: local val = redis.call('get', KEYS[1]); if val == ARGV[1] then redis.call('del', KEYS[1]); return 1 else return 0 end. Pro
Ready to master this question?
Generate a complete walkthrough — background, the full answer in plain language, a working code example explained line by line, a real-world scenario, common mistakes, and how this same question gets asked in different ways.
Sign in to generate a response