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

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

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

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

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

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

3 ответов


вы можете попытаться кэшировать файл:

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

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

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

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

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


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


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

здесь : https://www.smarty.net/forums/viewtopic.php?p=86501&sid=efc098e0cfb090a94e8c0d362c609263#86501