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.