@V_Tjuryakin
Перфекто

Где хранить данные, которые меняются раз в 3-6 месяцев?

Привет всем, есть данные, которые обновляются максимум в 3-6 месяца, а могут и не меняться целый год, к примеру названия типов данных
$types = [1 => 'Автомобили', 2 => 'Недвижимость', 3 => 'Путешествия'];

Раз через какое-то время при добавлении нового раздела сервиса возможно добавления нового типа.
Обращения к этим данных происходит часто, не хотелось бы хранить это в MySQL.
В проекте используется MySQL + Redis.
Есть мысль занести данные в Redis, может есть альтернатива? Кто где хранит такие данные?

Сейчас пока идет разработка, данные просто находятся массивом в контролере и передается во View.
  • Вопрос задан
  • 3216 просмотров
Пригласить эксперта
Ответы на вопрос 5
AlexPTS
@AlexPTS
Full stack веб разработчик
Хранить их в БД, но при этом кешировать. Чтобы за таким словарем не бегать в БД каждый раз.
Ответ написан
Комментировать
kumaxim
@kumaxim
Web-программист
Если данные настолько "часто" меняются, тогда почему бы их не забить в отдельный PHP-словарь - просто файл, который содержит массив и инклудится туда, где он нужен.

Минус - да, надо будет каждый раз лезть и менять руками, но раз в квартал, я думаю можно.
Ответ написан
@AlexGx
Yii2 developer, business analytics
Можете хранить в базе, а при изменении экспортировать в пхп массив.

Вот список способов хранения, по убыванию скорости. Сериализованные массивы самые быстрые, но php массивы может кешировать op cache.

Serialized arrays
Plain PHP code
INI files
XML files
YAML files
Ответ написан
viktorvsk
@viktorvsk
Эмм, ну явно не в редисе. Он должен хранить данные в оперативке, а реляционные базы - на диске. Кто в итоге больше подходит под хранение данных, которые изменяются редко ?
Именно в mysql и храните. Тем более, пока нет никаких ограничений. Почему вам "не хочется" их там хранить ?
Ответ написан
Murz
@Murz
Разработка сайтов на Drupal, поисковая оптимизация
Предлагаю хранить эти данные также в базе, но кешировать их вывод прямо в PHP. Например при каждом изменении данных или по крону (например, раз в сутки) запускать скрипт, который будет делать выборку из базы и перегенерить файл types_data.inc.php или как serialized-массив.

Тем самым вы решите проблему администрирования списка (сортировка, фильтрация, добавление нового, изменение, переименование) раз в 3-6 месяцев, и при ежедневном запросе на чтение не будет каждый раз делаться запрос к БД.

Хотя не факт что файл будет быстрее - "горячий" кеш БД возможно в некоторых ситуациях будет быстрее, чем чтение файла с забитым под завязку другими файлами файловым кешем.
Ответ написан
Ваш ответ на вопрос

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

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