არასდროს გააკეთოთ UPDATE posts SET views = views + 1 თითო event-ზე ცხელ პოსტზე — ის ერთი მწკრივი lock-ის bottleneck-ად იქცევა. გაზარდეთ Redis-ში, batch-ით ჩააფლაშეთ DB-ში ყოველ რამდენიმე წამში და წაიკითხეთ count Redis-იდან. DB durable ჯამებს ინახავს, არა ცოცხალ ტრაფიკს.
არქიტექტურა
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)
