hot post मा प्रति event UPDATE posts SET views = views + 1 कहिल्यै नगर्नुहोस् — त्यो एउटै row lock bottleneck बन्छ। Redis मा increment गर्नुहोस्, हरेक केही second मा DB मा batch-flush गर्नुहोस्, र count Redis बाट पढ्नुहोस्। DB ले टिकाउ total भण्डारण गर्छ, 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)
