Redis in Production: Why a Fast Cache Can Still Return Stale Data

Imagine that you have just changed a product’s price. One request is still reading the old price from the database; another has already deleted the old cache entry. Which request writes the cache last? Now imagine thousands of visitors opening the same page just as its cache key expires. How many database queries will you get? Those are the questions I find more interesting than another SET/GET tutorial. This article starts with a small product catalog and follows three problems: stale cache fills, a database overwhelmed by cache misses, and rate limits that behave differently from what their configuration suggests. It ends with eight failures worth simulating before Redis sits on an important request path. ...

October 10, 2026 · 30 min · 6225 words · Andrew Nguyen

Redis Persistence Explained: What RDB and AOF Actually Save

Someone registers for your event. The application increments a counter in Redis, receives a successful reply, and confirms the registration. One second later, the machine loses power. Will that increment still be there when Redis starts again? The answer depends on what Redis wrote to disk, when it wrote it, and which files it loads during recovery. Those three questions make RDB and AOF much easier to understand than memorizing “snapshot” and “log” as definitions. ...

October 8, 2026 · 14 min · 2968 words · Andrew Nguyen

Learning Redis from the Ground Up: Keys, Data Types, and the Decisions That Matter

The first two Redis commands take about a minute to learn: SET name Alice, then GET name. The harder questions arrive when you put Redis behind a real application. How should you store a list of attendees? When does a key disappear? What happens when two people try to reserve the last ticket at the same time? We’ll answer those questions with one running example: an online event platform that tracks attendees, page views, scores, sessions, and activity. The examples use Redis Open Source 7.x and Python 3.10+. Every key beginning with lab: belongs to the exercises. ...

October 3, 2026 · 14 min · 2865 words · Andrew Nguyen

Understanding OOMKill in Kubernetes

Introduction OOMKill is a common problem when running workloads on Kubernetes. Linux OOM Killer Linux may terminate processes when the system runs out of available memory. Kubernetes Memory Limits For example: 1 2 3 4 5 resources: requests: memory: 256Mi limits: memory: 512Mi

September 2, 2026 · 1 min · 43 words · Andrew Nguyen