Understanding Redis Expiration Strategies: Lazy Deletion, Periodic Deletion, and New EXPIRE Options
This article explains Redis's two expiration strategies—periodic active deletion and lazy deletion—detailing how the EXPIRE command works, the new NX/XX/GT/LT options introduced in version 7.0, the impact of unsynchronized clocks, and the underlying implementation code.
Redis uses two main strategies to delete expired keys: periodic active deletion and lazy deletion.
In versions prior to 2.6, expiration granularity was up to one second; from 2.6 onward it is 0‑1 ms. The EXPIRE key seconds [NX|XX|GT|LT] command sets a TTL, and without a TTL the key persists until explicitly deleted.
Expiration and Persistence
Expiration timestamps are stored as absolute Unix times, so clock synchronization between master and replica nodes is essential; otherwise keys may be considered expired prematurely during RDB transfer.
Lazy Deletion
When a client accesses a key, Redis checks if the key is expired; if so, it removes the key. This check is performed by the expireIfNeeded function (see code below) and is the only way a key can be deleted without the periodic scan.
int expireIfNeeded(redisDb *db, robj *key, int force_delete_expired) {
// key not expired
if (!keyIsExpired(db,key)) return 0;
if (server.masterhost != NULL) {
if (server.current_client == server.master) return 0;
if (!force_delete_expired) return 1;
}
if (checkClientPauseTimeoutAndReturnIfPaused()) return 1;
/* Delete the key */
deleteExpiredKeyAndPropagate(db,key);
return 1;
}Periodic Deletion
Redis runs an active expiration cycle ten times per second, each time randomly sampling a subset of keys with TTLs (default 20 keys). Expired keys are deleted, and if more than 25 % of sampled keys are expired, the cycle repeats.
The implementation resides in src/db.c (function expireIfNeeded) and expire.c (function activeExpireCycle).
If expired keys accumulate faster than they can be removed, Redis relies on its memory eviction policies to free space.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
IT Services Circle
Delivering cutting-edge internet insights and practical learning resources. We're a passionate and principled IT media platform.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
