TGViewer
BA & SA | 10000 Interview questions BA & SA | 10000 Interview questions @systemanalystinterview · 10.3K subscribers
Post #11935 437
☀Объяснение:

Проблема прямого обновления в БД:
Таблица 
posts имеет колонку likes_count. Каждый лайк выполняет UPDATE posts SET likes_count = likes_count + 1 WHERE id = ?. Это вызывает блокировку строки (row lock) на время обновления, а при тысячах лайков в секунду — конкуренцию и падение пропускной способности.

Как решает Redis:
Redis хранит счётчики в памяти: 
INCR post:123:likes. Операция атомарная и очень быстрая (микросекунды).
Отдельный фоновый процесс (воркер) каждые N секунд (например, 10) читает текущие значения из Redis и обновляет БД: 
UPDATE posts SET likes_count = current_value WHERE id = ?.
При падении Redis счётчики можно восстановить из БД (если сохранять периодически) или из логов событий (Kafka).

Допустима ли eventual consistency?
Да. Пользователь видит, что лайк добавился, но в БД он может отразиться с задержкой в несколько секунд. Для лайков это приемлемо.

Реальный пример: Twitter и Instagram используют подобную архитектуру: лайки, ретвиты, подписки сначала идут в Redis, затем асинхронно записываются в основное хранилище.

Вывод: Аналитик, проектируя высоконагруженный счётчик, должен заложить требование: «Использовать Redis как временный счётчик с асинхронной записью в БД, согласованность — в конечном итоге (eventual consistency)».
More from @systemanalystinterview
  1. Sep 29, 2026😱 Отправили свое резюме на 129 вакансий на хх, а в ответ тишина .. Думаете, что дело в ры…
  2. Sep 3, 2026А ИИ действительно экономит время? На деле ИИ может взять на себя рутину: анализировать да…
  3. Aug 26, 2026До 1 сентября остаётся меньше недели, и мы с вами официально вступаем в самую активную пор…
  4. Aug 21, 2026Если вы работаете в сфере IT, развиваетесь в технологиях или просто хотите быть в курсе са…
  5. Aug 20, 2026🔈 Как найти работу в 2026 году Вы все слышали о том, что происходит с рынком труда (если…
  6. Aug 20, 2026Post #12336
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →