Cache-aside means your app reads Redis first, falls back to the database on miss, then populates Redis. Wrong TTLs inflate staleness; missing locks cause stampedes on popular keys.
- Namespace keys (`v2:user:{id}:profile`) so schema migrations do not poison old entries.
- Use short TTL plus periodic refresh for near-real-time dashboards; long TTL for reference data.
- Consider probabilistic early expiration or mutex tokens for thundering herds.
Redis complements (not replaces) SQL transaction design—never rely on cache for authority.
