Redis против Javascript объектов.Какие преимущества предлагает Redis в этом случае? - PullRequest
0 голосов
/ 14 мая 2018

Мой сервер Node собирает данные в виде вложенных массивов, один раз в минуту или около того. Данные выглядят так: [[8850, 3.1, '2009jckdsfj'], ..., [8849.99, 25.3, '8sdcach83']]

Существует около 2000 таких массивов, которые необходимо кэшировать. Постоянство не важно, так как я обновляю его так часто.

Использование redis кажется «делом», однако я не вижу выгоды. Используя объект javascript, мне не нужно было бы разбирать и анализировать массивы, чтобы хранить и использовать их.

Какие преимущества даст Redis в этой ситуации?

1 Ответ

0 голосов
/ 14 мая 2018

Вот несколько причин использовать redis:

  1. Доступ к данным могут иметь несколько процессов. Он выполняется в отдельном процессе и имеет сетевой API, поэтому несколько процессов могут получить доступ к данным. Например, если вы использовали кластеризацию и хотели, чтобы все кластерные экземпляры имели доступ к одним и тем же данным, вам нужно будет использовать некоторую внешнюю базу данных (например, Redis).

  2. Использование памяти отдельно от node.js. Он выполняется в отдельном процессе, поэтому его использование памяти отделено от node.js. Если бы вы хранили очень большой объем данных, возможно, что redis будет обрабатывать такое большое использование памяти лучше, чем node.js, или вам будет выгоднее разделить использование между двумя процессами, а не всеми в node.js.

  3. Redis предлагает функции, которые не являются частью стандартного Javascript. К ним относятся публикации / подписки, запросы данных, транзакции, ключи с истекающим сроком (идеально подходит для данных, срок действия которых истекает, таких как сеансы), LRU устаревание ключей (идеально для ограниченного кэша), структуры данных, не встроенные в Javascript, такие как отсортированные наборы, растровые изображения и т. д. и т. д. - это только некоторые из них.

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

Это говорит о том, что нет смысла использовать redis, потому что это "что делать". Используйте redis, только если вы обнаружили проблему, которая решается лучше, чем просто использование хранилища объектов внутри node.js.

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

...