Redis против Javascript объектов. Какие преимущества предлагает Redis в этом случае?

1

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

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

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

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

  • 0
    Есть ли в Node.js механизм для сохранения данных в локальной памяти между последующими запросами? Что-то вроде разделяемой памяти?
Теги:
caching
redis
memcached

1 ответ

2
Лучший ответ

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

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

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

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

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню