کسی 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)
