котором более 300 тысяч записей, вес файла 10мб.
Возможно ли его закешировать чтобы обращаться к нему было быстрее? Обращаюсь к файлу каждый раз, чтобы показать пользователю определенные данные в зависимости от выбранных ранее данных.
Сохранить. например в бд.
Для меня не вариант. Уйма времени чтобы написать алгоритм под каждый тип, который в XML файле.
Ну так и при чтении файла нужен «алгоритм под каждый тип»
Придется. Ты тратишь не много времени чтобы клиенты не тратили. Работай
преобразовать в более читаемый формат, например в массив формата php и сохранить его в файл, а потом через include подключать, например так сделано кэширование конфига в Laravel а лучше всего данный из файла перенести в базу данных, как минимум в sqllite, если нет mysql и подобных под рукой
В Redis поместить
Весь файл?
не файл, а его преобразованную форму. прочитать xml файл даже с диска это не проблема, а вот разобрать и найти в нес нужные данные это более ресурсоемкая задача. но опять же о какой нагрузке идет речь, одно дело, 1-2 запроса в час, другое дело 1-2 запроса в секунда, про большее кол-во воздержусь
Один пользователь - 5 запросов в минуту к файлу весом 10 мб.
как часто меняется файл?
1. Даже если весь файл - уже быстрей будет чем с диска 2. Потом вы можете в редис загонять куски, который вы пользователю отдаёте, если они одинаковые . Это уже быстрей п1.
Обсуждают сегодня