Hazelcast против Redis(или RedisLabs) для приложения NodeJS

У меня есть приложение, имеющее более 2 ТБ данных для хранения в кеше, доступ к данным осуществляется через API-интерфейсы NodeJS. Для приложения NodeJS, которое было бы лучшим выбором, Hazelcast или Redis (или RedisLabs)? Учитывая следующие критерии?

  • Поддержка API NodeJS, включая пул соединений. Похоже, HazelCast не имеет NodeJS API

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

2 ответа

Решение

Клиент Hazelcast Node.js фактически существует и в настоящее время предоставляет следующие функции

  • реализация Open Client Binary Protocol, Redis использует текстовый протокол
  • карта
    • Получить
    • Положил
    • Удалить
  • Smart Client - клиенты подключаются к каждому узлу кластера. Поскольку в каждом разделе данных используется хорошо известный и согласованный алгоритм хеширования, каждый клиент может отправить операцию соответствующему узлу кластера, что повышает общую пропускную способность и эффективность. Клиент не должен быть перезапущен в случае добавления или удаления узлов из кластера.
  • Слушатель распределенных объектов
  • Сервис жизненного цикла

С точки зрения сравнения серверных функций Hazelcast и Redis, вы найдете исчерпывающую документацию здесь.

Спасибо

Что ж, я бы посоветовал, если вы используете очень сложную обработку / обработку данных, вам следует использовать HazelCast, и по своей природе nodejs является однопоточным, поэтому, если вы используете его просто для хранения значения ключа, не используйте его.

Существует официальный API, для которого вы можете использовать (NodeJS + hazelcast), но с очень ограниченной функциональностью, используется только KeyVal

Если вы просто используете кеш в качестве хранилища значений ключей, Redis - это хорошо, быстро, БЕСПЛАТНО!, он может обрабатывать большие данные, а также с некоторыми дополнительными настройками взглянуть на http://redis.io/topics/partitioning

с точки зрения стоимости поддержки RedisLabs дешевле, и если вы используете Redisson с Redis, он может предоставить вам всю структуру данных, которую использует Hazelcast:)

BitSet, Set, Multimap, SortedSet, Карта, Список, Очередь, BlockingQueue, Deque, BlockingDeque, Семафор, Блокировка, AtomicLong, CountDownLatch, Публикация / подписка, Фильтр Блума, Удаленная служба, Кэш Spring, Служба исполнителя, Служба живых объектов, Служба планировщика

RedisLabs имеет гораздо больше пользователей + участников, HazelCast немного меньше, если вы объединяете пользователей, поэтому, если ваши данные составляют 2 ТБ, если это просто значение ключа. Redis будет лучшим

Другие вопросы по тегам