hot post वर प्रत्येक event मागे कधीही UPDATE posts SET views = views + 1 करू नका — तीच एक row lock bottleneck बनते. Redis मध्ये increment करा, दर काही सेकंदांनी DB कडे batch-flush करा, आणि count Redis मधून वाचा. DB durable totals साठवते, live traffic नव्हे.
आर्किटेक्चर
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)
