Hot bir gönderi üzerinde her olay için asla UPDATE posts SET views = views + 1 yapmayın — o tek satır bir lock bottleneck'i haline gelir. Redis'te artırın, her birkaç saniyede bir DB'ye batch-flush yapın ve sayacı Redis'ten okuyun. DB, canlı trafiği değil, dayanıklı toplamları saklar.
Mimari
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)
