A cached value expiring under load means every request that arrives in the next few hundred milliseconds recomputes it simultaneously — so the moment of highest cost is…
A scheduled task that occasionally runs longer than its interval will be started again while the first is still going, which for an import means two processes writing…
A 400ms pause on every request, once an hour, caused by a cache cleanup nobody thought of as expensive. Redis is single-threaded, and freeing memory is work.
Rather than coordinating who recomputes, let each reader decide independently with a probability that rises as the expiry approaches — so one request refreshes early and the rest…
Redis is single-threaded, so DEL on a structure with a million members blocks every other client for as long as freeing it takes — which is milliseconds for…
The email that arrived four times and the charge that arrived twice. What makes a job safe to run again, and keeping workers alive without them serving stale…
Redis has two persistence mechanisms and the documentation presents them as a choice, which invites picking one. They fail differently, and on anything that matters both are usually…
Finding the nearest branch used to mean a bounding-box query in SQL with a Haversine formula in the ORDER BY, which cannot use an index and gets slower…