Кэширование PHP-переменных между страницами - PullRequest
0 голосов
/ 03 мая 2011

Можно ли хранить переменные php в каком-то кеше, поэтому их нужно генерировать только один раз, но они доступны на каждой веб-странице? Без использования POST, GET, COOKIES или SESSIONS

У меня есть куча URL-адресов, хранящихся как variabled, которые я хочу сохранить под рукой.

Я знаю о кешировании HTML, но мне нравится как-то кэшировать переменные php. Не уверен, что есть решение?

1 Ответ

1 голос
/ 03 мая 2011

Я использую Zend-серверную реализацию стека php. Даже выпуск сообщества поставляется с:

zend_shm_cache_fetch();
zend_shm_cache_store();
zend_disk_cache_fetch();
zend_disk_cache_store();

Вещи, установленные в этих переменных, живут во время выполнения сценария и очищаются после истечения времени ожидания, указанного при создании.

Допускаются сложные переменные, поэтому вы можете хранить ассоциативные массивы и тому подобное, не кодируя их в первую очередь.

Я их широко использую.
Методы shm могут хранить и извлекать 32k фрагментов в диапазоне 0,0005 секунды.

Чтобы сохранить содержимое переменной $ results в кеше с именем blah, время ожидания которого составляет 120 секунд:

zend_shm_cache_store('blah',$results,120);

Чтобы позже получить содержимое результатов $:

$results = zend_shm_cache_fetch('blah');
if ( $results === false ) { # It expired, or never existed..

Zend документация по этому вопросу: http://files.zend.com/help/Zend-Platform/zend_cache_functions.htm

Вы можете увеличить количество свободного места на консоли Zend Server. Я думаю, что по умолчанию нравится 32 МБ. У меня есть мой на 256mb. Возможно, вам придется перезагрузить или очистить сегменты общей памяти, чтобы на самом деле увеличилось пространство Увеличение его делает медленнее. Кажется, будет быстрее, если вы будете хранить большие массивы данных вместо небольших битов с индивидуальной ссылкой, но ymmv.

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