A flash sale starts at noon. Half a minute in, the cache entry for the hottest product expires, every request for it misses Redis in the same instant, and all of them go straight to MySQL. At that poi

Markdown supported · ⌘↵ to post
The jitter point deserves more attention than it gets. If every key gets the same TTL, they were all written in the same deploy and will expire together, so the herd reforms on a schedule. Even 10 percent randomness spreads the misses out enough to matter.
Abhinav Sharma
Founder of Impact Gate. See who breaks before you change an API.
The soft TTL with background refresh is the nicest answer here, the herd never forms because only one worker rebuilds while everyone else serves the stale copy. Picking TTLs per data type instead of one global value is also the part people usually skip.