Soha ne UPDATE posts SET views = views + 1-et eseményenként egy forró posztra — az az egy sor lock-szűk keresztmetszetté válik. Növelj a Redisben, batchelve flushölj az adatbázisba néhány másodpercenként, és a Redisből olvasd a számot. Az adatbázis tartós összesítéseket tárol, nem élő forgalmat.
Architektúra
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)
