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

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

11 голосов
/ 18 ноября 2010

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

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

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

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

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

Ответы [ 3 ]

19 голосов
/ 18 ноября 2010

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

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

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

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

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

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

1 голос
/ 24 июля 2017

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

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

0 голосов
/ 18 ноября 2010

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

...