Как вы управляете несколькими проектами на своей машине разработки и/или тестирования, когда в некоторых из этих проектов используются базы данных Redis?
Есть две основные проблемы:
- Redis не имеет именованных баз данных (только числа 0-16)
- Тесты, вероятно, будут выполнять FLUSHDB при каждом запуске
Прямо сейчас, я думаю, у нас есть три варианта:
- Назначение различных баз данных для каждого проекта, каждого разработчика и тестовой среды
- Префиксные ключи с именем проекта, используя что-то вроде
redis-namespace
- Nuke и загружать базы данных при каждом переключении между проектами
Первый из них проблематичен, если несколько проектов назначают "0" для основного использования и "1" для теста и т.д. Даже если Project B решил перейти на "2" и "3", у другого участника проекта может возникнуть конфликт в других проектах для него. Другими словами, этот подход не является дружественным SCM.
Для второго, это плохая идея просто потому, что она добавляет лишние накладные расходы на производительность и эффективность памяти. И независимо от того, что вы делаете, другой проект, возможно, уже использовал тот же ключ, когда вы присоединились к проекту.
Третий вариант - скорее продукт компромисса, но иногда я хочу, чтобы мои локальные данные были не затронуты, когда я развертываю небольшие патчи для других проектов.
Я знаю, что это может быть запрос функции для Redis, но мне сейчас нужно решение.
Любые идеи, практики?