nepster-web
@nepster-web

Как правильно разделять данные в Redis?

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

По умолчанию в Redis доступно 16 баз, но я не совсем понял их практического применения.

Постараюсь объяснить в деталях.
У меня есть некоторые данные: (города, страны, аэропорты, статьи, данные статистики и т. д.).

Для хранения данных в Redis я могу использовать структуры данных, например, хеш-таблицы:
Страны HSET id_1 "{объект json}"
Страны HSET id_2 "{объект json}"
Страны HSET id_3 "{объект json}"

HSET airport id_1 "{объект json}"
HSET airport id_2 "{объект json}"
HSET airport id_3 "{объект json}"

HSET record id_1 "{объект json}"
HSET record id_2 "{объект json}"
HSET record id_3 "{объект json}"


или использование баз данных является более хорошей практикой? например:

База данных 1: города
База данных 2: страны
База данных 3: аэропорты

select 3
SET id_1 "{объект json}"
SET id_2 "{объект json}"
SET id_3 "{объект json}"


Как правильно разделять данные в Redis?
  • Вопрос задан
  • 189 просмотров
Решения вопроса 1
tumbler
@tumbler
бекенд-разработчик на python
На практике чаще всего используется логическое разделение: одна база - один "набор" данных. Например, сессии можно хранить в 1 базе, очереди фоновых задач - во 2 базе, счетчики просмотров - в третьей. Это дает определенные плюшки:
  • связанные данные можно оторвать от остальных и перенести на другой сервер
  • в статистике редиса видна память отдельных баз, можно определить, какой вид данных нагибает сервер
  • связанные данные можно через FLUSHDB почистить скопом (не советую на нагруженном продакшне так делать, но это лучше чем по ключам сортировать, что удалять а что нет)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы