Как хранить данные в ОЗУ с помощью PHP?

Есть ли способ хранить небольшие данные в ОЗУ с использованием PHP, чтобы я мог получить доступ к данным между разными сеансами вместо их регенерации. Что-то похожее на memcached (у меня нет доступа к memcahced). Мое текущее решение – это просто сохранить данные в файле.

Solutions Collecting From Web of "Как хранить данные в ОЗУ с помощью PHP?"

APC ?

Он отличается от memcached; в memcached вы можете получить доступ к данным с разных языков (c, python и т. д.), в то время как APC работает только для PHP.

EDIT вы уверены, что APC установлен правильно? Вы добавили extension=apc.so в свой php.ini? И перезапустить apache (im, предполагающий youre на сервере лампы с apache2)? Что вы phpinfo(); сказать о APC?

Это просто тест, который отлично работает для меня:

 <?php /* * page.php * Store the variable for 30 seconds, * see http://it.php.net/manual/en/function.apc-add.php * */ if(apc_add('foo', 'bar', 30)){ header('Location: page2.php'); }else{ die("Cant add foo to apc!"); } <?php /* * page2.php * */ echo 'foo is been set as: ' . apc_fetch('foo'); 

ps: Я предпочитаю использовать apc_add поверх apc_store , но единственная разница между ними заключается в том, что apc_add не перезаписывает переменную, но будет терпеть неудачу, если вызывается дважды с тем же ключом:

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

Это вопрос вкуса / задачи скрипта, но пример выше работает с apc_store.

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

Я предполагаю, что вы на каком-то общем сервере.

memcached или другое кэширующее решение – единственный способ сделать это.

Сеансы, наиболее известный метод хранения данных на страницах PHP, работают на основе файлов. Вы можете изменить обработчик сеанса вместо базы данных, но это тоже не ОЗУ.

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

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