Кэширование PHP-массива

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

При первом возврате я бы хотел кешировать эти данные.

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

Я уже использую smarty для кэширования содержимого моей страницы (исключая динамические биты), выполнил настройки apache, минимизировал и т. Д. Для повышения производительности, но загрузка страницы все еще далека от долгой. Иногда до 8 секунд!

Использование PHP5 с Smarty. Использование cURL для анализа XML, который затем сохраняется в массиве.

3 ответа

Решение

Вы можете попробовать кешировать в файл:

file_put_contents("cache_file", serialize($myArray));

Затем загрузить кеш:

$myArray = unserialize(file_get_contents("cache_file"));

Это будет работать, если вещи в вашем массиве сериализуемы: нет соединений с БД, файловых дескрипторов и тому подобного. Строки и числа в порядке.

Если вам нужно что-то более изощренное, вы можете использовать кеш на основе памяти, такой как memcached.

Если вы используете шаблонизатор Smarty, то для v3.1 существует плагин, который включает APC (альтернативный PHP Cache) в качестве кэша кода операции, у вас также есть встроенная область памяти для молниеносного доступа к данным.

Доступно здесь: https://www.smarty.net/forums/viewtopic.php?p=86501&sid=efc098e0cfb090a94e8c0d362c609263

Вы думали над тем, чтобы поместить static $yourData = array(); в вашем методе, где вы загружаете данные, затем проверяете, есть ли какие-либо данные в этом статическом массиве, и используете их, чтобы получить данные чрезмерно? надеюсь, это поможет каким-то образом:D

Другие вопросы по тегам