Кэширование переменных в PHP

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

У меня есть PHP-файл, который выполняет кучу MySQL-запросов, а затем заполняет переменные различными данными из этих запросов.

Некоторые из этих переменных никогда не изменятся, но некоторые из них будут меняться довольно часто. Как я могу кэшировать определенные переменные таким образом? Я использую кеширование на основе файлов, если это помогает.

Solutions Collecting From Web of "Кэширование переменных в PHP"

Yup, файловое кэширование – это вариант.

Существуют также другие варианты, такие как memcache и APC

Вы также должны взглянуть на них. Если ваше приложение накладывает большую нагрузку на ваш сервер MySQL, и если ваша БД уже оптимизирована, кеширование – это шаг, который вы можете предпринять.

Я не знаю, как вы структурировали свой текущий кеширующий материал, поэтому это всего лишь короткий шаблон о том, как вы можете сохранить любую переменную (до тех пор, пока ее контент будет сериализован) в файл.

file_put_contents($filename, serialize($variable)); 

Вы можете сбрасывать любую переменную (включая массив) с помощью сериализации , а инверсия – несериализуется .

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

Я нахожу, что местная mysql с таблицами MEMORY также может быть полезна …

Поскольку вы спрашивали о кешировании на основе файлов, как memcache и APC являются параметрами, хотя я бы, конечно, рекомендовал их в тех случаях, когда хранящиеся данные не слишком велики.

Для кэширования на основе файлов я бы рекомендовал использовать структуру кэширования. Например, вы можете использовать Zend_Cache из Zend Framework . Он позволяет сохранять результаты запроса в файлах с помощью красивого объектно-ориентированного интерфейса. Кроме того, у вас есть много вариантов, таких как валидация и сериализация. Существуют и другие структуры кэширования.