Подтвердить что ты не робот

Redis vs hazelcast

Redis Vs Hazelcast Если мое приложение:

  • Имейте много запросов HTTP (6000 в минуту, я собираю информацию о кликах), которые необходимо сохранить.
  • Имейте много http-запросов, которые запрашивают ранее сохраненные данные.

Мои вопросы - Какой из них между Redis и Hazelcast следует выбрать для хранения и запроса данных - что быстрее для чтения и записи? - какой из них более надежный? - Может ли Кассандра стать лучшим вариантом?

Ответ на любой из вопросов помогает

4b9b3361

Ответ 1

Мы перешли от redis к hazelcast для наших потребностей в кешировании.

  • Protostuff + Hazelcast для нас гораздо быстрее, чем
  • Protostuff + Jedis (объединенный) + Redis

Мы используем protostuff для сериализации beans, которые дорого создавать. Механизм стандартной сериализации Hazelcasts намного медленнее. Наша среда - Glassfish 3.1.

Hazelcast выглядит так, будто у них только java libs, у Redis есть один для каждого языка.

True. Hazelcast предоставляет только API REST и реализацию протокола memcached.

Ответ 2

Существует очень удобный lib - Redisson. Он предоставляет распределенные Java-объекты и сервисы (BitSet, BloomFilter, Set, SortedSet, Map, ConcurrentMap, List, Queue, Deque, BlockingQueue, BlockingDeque, ReadWriteLock, Semaphore, Lock, AtomicLong, CountDownLatch, Publish / Subscribe, RemoteService, ExecutorService, LiveObjectService, ScheduledExecutorService) поверх сервера Redis!

Он поддерживает режимы кластера, дозорного, ведущего/ведомого и одного подключения.

Прекрасно работает в облаке и поддерживает AWS Elasticache и Azure Redis Cloud

Ниже приведены некоторые истории успеха от клиентов Redisson:

Переход от Hazelcast к Redis
Распределенная блокировка с Redis (миграция из Hazelcast)

Ответ 3

Начиная с 2017 года, как Redis, так и Hazelcast предлагают доступное\масштабируемое хранилище ключей\значение. С очень быстрым временем отклика < 10ms.

Redis уникален тем, что он поддерживает другие структуры данных, такие как загруженные наборы, хэш-множества и механизм pub\sub. Он также расширяется с помощью сценариев lua. Это, вероятно, самый популярный и широко используемый из двух продуктов. Особенно за пределами экосистемы Java.

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

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

Ответ 4

Чтобы решить, какой из них является хорошим, существует проблема использования клиентского потока.

В соответствии с этим benchmark Hazelcast лучше, чем Redis, если вы используете больше потоков. Может быть, это нечестный ориентир компании, но показывает что-то о потоковом использовании.

Ответ 5

Оба Redis и Hazelcast являются базами данных на основе памяти, поэтому теоретически они должны обеспечивать такую ​​же скорость и производительность. Просмотрев документы для Hazelcast, вы получите лучшую поддержку с Redis из-за большого количества библиотек для взаимодействия с базой данных. Hazelcast выглядит так, что у них только java libs, у Redis есть один для каждого языка.

Ответы:

  • Вам придется протестировать это самостоятельно, насколько я могу сказать, разные сравнения показывают Redis как быстрее один из них здесь, но я не буду говорить, что эти тесты 100%

  • Они должны быть надежными, но я не могу ручаться за Hazelcast.

  • Может быть...

Я бы пошел с Redis, потому что считаю, что он наиболее удобен и имеет отличную документацию.