2015-06-07 2 views
3

В настоящее время мы используем Redis, и это отличное хранилище данных в памяти. Мы начинаем рассматривать некоторые новые проблемы, когда ограничение в памяти является фактором и рассматривает другой вариант. Один из них, с которым мы столкнулись, - Aerospike - кажется очень быстрым, даже быстрее, чем redis на операции с одним осколком в памяти.Каковы случаи, когда Redis предпочитает Aerospike?

Теперь, когда мы добавляем это в наш стек, я пытаюсь понять случаи использования, когда Aerospike не сможет заменить redis?

+0

Для тех, маркировки, чтобы закрыть - отредактированный быть менее субъективным – Yehosef

+0

Тем не менее призывает мнение - попытаться с указанием точного характера ваших проблем и задач, которые вы пытаетесь решить, вместо того, чтобы просить рекомендации. –

+0

@ItamarHaber - Я не прошу рекомендаций. Я прошу места, где один инструмент лучше подходит, чем другой. Это похоже на http://stackoverflow.com/questions/2875432/use-cases-for-nosql http://stackoverflow.com/questions/8181604/postgres-9-1-vs-mysql-5-6- innodb или http://stackoverflow.com/questions/18591999/zmq-vs-redis-for-pub-sub-pattern – Yehosef

ответ

5

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

Эти две отличные базы данных. Это зависит от того, насколько большой набор данных вы обрабатываете, и ваши ожидания роста.

4

Redis:

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

Aerospike:

ключ/значение строки-магазин (то есть значение содержит контейнеры со значениями, и эти значения могут быть больше карт/списки/значения, чтобы иметь несколько уровней), многопоточный использовать все ядра, построенные для кластеризация на компьютерах с репликацией и может выполнять репликацию с несколькими базами данных, сценарии Lua для UDF. Может работать непосредственно на SSD, поэтому вы можете хранить гораздо больше данных, не встраиваясь в ОЗУ.

Сравнение:

Если вы просто иметь меньший набор данных или штраф с производительностью одноядерных затем Redis велик. Быстрая установка, простая в использовании, простая для простого подключения подчиненного устройства с 1 командой, если вам нужна более читаемая масштабируемость. Redis также имеет более уникальные функциональные возможности с операциями list/set/bitmap, поэтому вы можете делать «больше» из коробки.

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

Это большая разница, масштабируемость за пределами одного ядра или сервера. С помощью сценариев Lua вы можете заполнить любую собственную функцию, которую Redis имеет в Aerospike. Если у вас много данных (например, ТБ), то функция SSD от Aerospike означает, что вы получаете производительность, подобную RAM, без стоимости оперативной памяти.

0

Redis и Aerospike различны, и оба имеют свои плюсы и минусы, но Redis кажется более подходящим, чем Aerospike в 2 следующие случаи использования:

  1. , когда нам не нужна репликация мы используем большой кэш с интенсивной записью и очень короткий ТТЛ (20s) для дедупликации. Нет смысла тиражировать эти данные. Redis, вероятно, будет использовать вдвое меньше процессора и меньше половины оперативной памяти, чем Aerospike. Это будет дешевле и быстрее, или даже быстрее благодаря конвейерной обработке.

  2. , когда нам нужна перекрестная репликация центров обработки данных У нас есть одна большая база данных, к которой нам нужно получить доступ из 5 центров обработки данных, много записей, интенсивное чтение. Идеального решения нет, но лучше всего сохранить центральную базу данных в Redis и копию в каждом центре обработки данных с использованием Redis master-slave-репликации.

 Смежные вопросы

  • Нет связанных вопросов^_^