Кэширование переменных в PHP - PullRequest
5 голосов
/ 14 апреля 2011

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

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

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

Ответы [ 4 ]

10 голосов
/ 14 апреля 2011

Да, файловое кэширование является опцией.

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

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

2 голосов
/ 14 апреля 2011

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

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

Я считаю, что локальный mysql с таблицами MEMORY тоже может быть полезен ...

1 голос
/ 14 апреля 2011

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

file_put_contents($filename, serialize($variable));
0 голосов
/ 14 апреля 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...