ਕਿਸੇ hot post ਉੱਤੇ ਹਰ event ਲਈ ਕਦੇ UPDATE posts SET views = views + 1 ਨਾ ਕਰੋ — ਓਹ ਇੱਕ row ਇੱਕ lock bottleneck ਬਣ ਜਾਂਦੀ ਹੈ। Redis ਵਿੱਚ increment ਕਰੋ, ਹਰ ਕੁਝ ਸਕਿੰਟਾਂ ਬਾਅਦ DB ਵਿੱਚ batch-flush ਕਰੋ, ਅਤੇ count ਨੂੰ Redis ਤੋਂ ਪੜ੍ਹੋ। DB durable totals store ਕਰਦਾ ਹੈ, 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)
