Redis базы данных на компьютере разработчика с несколькими проектами - PullRequest
11 голосов
/ 01 марта 2011

Как вы управляете несколькими проектами на своем компьютере для разработки и / или тестирования, когда некоторые из этих проектов используют базы данных Redis?

Есть две основные проблемы:

  1. Redis нене имеют именованных баз данных (только цифры 0-16)
  2. Тесты, вероятно, будут выполнять FLUSHDB при каждом запуске

Сейчас, я думаю, у нас есть три варианта:

  1. Назначение разных баз данных для каждого проекта, каждого разработчика и среды тестирования
  2. Префиксные ключи к имени проекта с использованием чего-то вроде redis-namespace
  3. Nuke и заполнение баз данных каждый раз, когда вы переключаетесь междупроекты

Первый проблематичен, если несколько проектов назначают «0» для основного использования и «1» для теста и тому подобное.Даже если Проект B решил изменить на «2» и «3», другой участник проекта может столкнуться с конфликтом в других проектах для него.Другими словами, этот подход не подходит для SCM.

Во-вторых, это плохая идея просто потому, что он добавляет ненужные накладные расходы на производительность во время выполнения и эффективность использования памяти.И независимо от того, что вы делаете, другой проект может уже использовать тот же ключ по совпадению, когда вы присоединились к проекту.

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

Я знаю, что это может быть запрос функции для Redis, но мне нужно решение сейчас.

Есть идеи, практики?

Ответы [ 2 ]

15 голосов
/ 01 марта 2011

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

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

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

0 голосов
/ 31 мая 2012

Redis отходит от нескольких баз данных, поэтому я бы порекомендовал вам начать перенос этого механизма раньше, чем позже.Это означает один экземпляр на дБ.Учитывая очень низкие накладные расходы на запуск Redis, это не проблема с точки зрения ресурсов.

При этом вы можете указать количество баз данных, и при этом будет работать стандарт именования.Например, настройте redis, скажем, 60 DBS, и вы добавите 10 для тестовой базы данных.Например, db3 использует db13 для тестирования.

Похоже, что ваша среда разработки, тестирования и разработки довольно тесно связаны между собой.Если так, я бы предложил отойти от этого.Использование отдельных экземпляров является самым простым путем к этому и обеспечивает защиту от перекрестного загрязнения.Между этим и будущим redis, составляющим один дБ на экземпляр, лучше всего использовать отдельные экземпляры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...