Я использую 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.