Redis vs Zookeeper


25

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

У меня есть экземпляр Redis, который я использую для некоторых вещей, связанных с производством, но хотел бы выполнить некоторую простую синхронизацию между серверами (в основном изменения конфигурации, которые не требуют увеличения кода и простой блокировки между серверами). Что дает мне Zookeeper , а Redis - нет?


Redis не (специально) для конфигурации. Это совершенно разные продукты.
Рейн Хенрикс

4
Зачем? Мы используем PostgreSQL для конфигурации. Что отличает конфигурацию от бизнес-логики?
Дмитрий Негода

Ответы:


26

Мы используем Redis и Zookeeper на работе, так что это из первых рук

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

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

Мой совет: используйте zookeeper для координации: отслеживание активных узлов, выбор лидера в группе и т. Д. Используйте redis для наборов данных, которые нуждаются в быстрой записи, но где случайное отключение не является катастрофой. Например, счетчики посещений для веб-страниц.


В настоящее время я работаю над проектом и думал, что Zookeeper будет подходить. Если бы у вас было больше информации, которой вы могли бы поделиться где-то, было бы замечательно. Мы работаем с несколькими рекламными биржами и отслеживаем около 4 миллиардов событий в день. Мы стремимся перепроектировать наши серверы переднего плана и искали zookeeper для хранения информации о счетчиках отслеживания, минимальном весе и т. Д. Я могу засвидетельствовать скорость redis, но по моему опыту в ней отсутствует иерархическая структура, которую мы искали использовать с zookeeper. Изменилась ли ваша позиция за 3 года с 2012 года?
Крис Хиншоу

@ChrisHinshaw Я столкнулся с той же проблемой. Рассматривая Redis и Zookeeper для распределенного менеджера ресурсов, который требует как распределенных блокировок, так и производительности. Есть ли у вас какие-либо отзывы?
Рафаэль Сарайва

Я заканчиваю переписывать это сейчас. Я пошел с Redis из-за скорости. Были некоторые проблемы с производительностью zookeeper, но я не помню проблем. Мы храним данные временных рядов на основе метрик и подсчетов. Я использую сценарии lua для обновления счетчиков для каждого из периодов времени, чтобы ограничить количество вызовов. Например, у нас есть хэш-ключ для запросов ставок в виде br: 1: 2: 3: 4, где числа представляют иерархию метрики: агентство: рекламодатель: кампания: реклама. В хэше значения: год: месяц: день: час: минута. В моем сценарии lua я обновляю счетчики для каждого
Крис Хиншоу,

срезы времени. Так что мой сценарий разбивает y: m: d: h на двоеточие и обновляет итоги для каждого среза. Таким образом, я могу использовать hscan или получить список ключей для любого временного интервала. Самое важное в Redis - это создать иерархическую модель ключей. В какой-то момент в будущем я хотел бы перенести все это на RDD в магазине кассандры. Если бы у меня было время, я бы применил потоковое воспроизведение искры для оценки этого. Я думаю, что это будет на одном уровне с Redis и дает гибкость в аналитике.
Крис Хиншоу
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.