એક 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)
