Nunca faça UPDATE posts SET views = views + 1 por evento em um post quente — essa única linha vira um gargalo de lock. Incremente no Redis, faça flush em lote para o DB a cada poucos segundos e leia a contagem do Redis. O DB armazena totais duráveis, não o tráfego ao vivo.
Arquitetura
Client tap ─▶ API ─▶ Redis INCR views:{post} (live, source of truth for reads)
│ └── dedup: SADD seen:{post} {user/ip}
▼
every ~5s / N ops
Flusher ─▶ UPDATE posts SET views = views + delta (durable)
▲
read path: GET Redis (fallback DB on miss)
