Redis Distributed Locks (Redlock caveats)
You are a Architect on-call. A production issue might involve Redis Distributed Locks (Redlock caveats). How do you diagnose and mitigate?
Answers use simple, clear English.
Quick interview answer
Mitigate first, then root-cause. Check symptoms against: DEL without token check; no TTL (dead lock holder); lock too short for work..
Detailed answer
Mitigate first, then root-cause. Check symptoms against: DEL without token check; no TTL (dead lock holder); lock too short for work.. Validate with: Unique token + Lua release; fencing tokens for storage writes.. Context: SET key token NX EX ttl acquires lock; release with Lua comparing token. Redlock multi-master debated — prefer DB advisory locks or etcd for strict correctness. Core: SET key token NX EX ttl acquires lock; release with Lua comparing token. Redlock multi-master debated — prefer DB advisory locks or etcd for strict correctness. Real-time example: Cron job on N pods: only one runs nightly billing via Redis lock with 5min TTL + heartbeat extend. Pros: Simple; fast; works for many coordination tasks. Cons: Clock skew / long GC can cause double execution; not CP like etcd. Common mistakes: DEL without token check; no TTL (dead lock holder); lock too short for work. Best practices: Unique token + Lua release; fencing tokens for storage writes. Audience level: Architect.
Full explanation
SET key token NX EX ttl acquires lock; release with Lua comparing token. Redlock multi-master debated — prefer DB advisory locks or etcd for strict correctness.
Real example & use case
Cron job on N pods: only one runs nightly billing via Redis lock with 5min TTL + heartbeat extend.
Pros & cons
Pros: Simple; fast; works for many coordination tasks. Cons: Clock skew / long GC can cause double execution; not CP like etcd.
Common mistakes
DEL without token check; no TTL (dead lock holder); lock too short for work.
Best practices
Unique token + Lua release; fencing tokens for storage writes.
Follow-up questions
- How would you test Redis Distributed Locks (Redlock caveats)?
- What metrics prove Redis Distributed Locks (Redlock caveats) is healthy in prod?
- How does Redis Distributed Locks (Redlock caveats) change at 10× traffic?