Можно ли использовать Redis для приложений с большим объемом записи? - PullRequest
0 голосов
/ 02 августа 2020

Итак, я работаю над приложением синхронизации видео в NodeJS, где сервер позволяет создать комнату, в которой несколько человек могут подключаться через розетку и синхронно просматривать видео c.

Один из Требования заключаются в том, чтобы иметь возможность выдавать последнее состояние комнаты любому зрителю, подключающемуся или повторно подключающемуся в середине видео, и под последним состоянием, я имею в виду, где другие зрители находятся в mov ie, будь то mov ie воспроизводится, либо приостановлено, либо завершено, и сколько людей в настоящее время подключено к нему.

Я особенно сосредоточен на сохранении последней информации о том, где находятся другие зрители в mov ie.

Итак, я подумал о следующем ( пожалуйста, дайте мне знать, если есть лучший подход )

  1. Попросите каждого клиента сообщить свое текущее положение x в mov ie через определенный интервал вместе с идентификатором комнаты, скажем, 2 секунды.
  2. Если в моем хранилище данных нет записи для идентификатора комнаты, создайте ее. * 10 15 *
  3. Если есть запись, извлеките ее, проверьте ее последнюю позицию в mov ie y и обновите, если x> y

Я думал о использование Redis в качестве основного хранилища данных для всех этих операций, поскольку, как говорят, он быстрее, чем традиционное чтение / запись БД, но меня беспокоит, будет ли он правильно масштабироваться.

В реальном сценарии жизни, будет намного больше записей, чем чтений, и каждая запись также является своего рода чтением, где я проверяю значение и обновляю только при определенных условиях.

Я где-то читал, что обновления Redis блокируются, и если у меня больше записей / updates, чем чтение, это может действительно замедлить чтение.

Итак, какие у меня здесь варианты?

...