Я хочу использовать apc_store()
для кэширования некоторых результатов.
Но мне нужно знать, где будут храниться данные, и каков предел.
Всегда ли он хранится в памяти? Или также записывает на диск? Я бы предпочел, чтобы данные, которые не имеют доступа очень часто, хранятся на диске. Должен ли я использовать для этого другую систему кеширования?
Это предел? apc.shm_size = 32MB
. Если да, то что происходит, когда я его превосхожу?
Данные, хранящиеся в кэше переменных APC через apc_store()
, всегда сохраняются в памяти. Если вам нужно хранить больше данных, чем это имеет смысл, вам нужно придумать какое-то другое решение для кэширования.
apc.shm_size
конфигурации apc.shm_size
устанавливает размер кэша общей памяти APC, который используется как для кодов операций, так и для пользовательских переменных. Если вы напишете больше данных в кеш, чем указано здесь, элементы будут удалены из кеша, начиная с наименее недавно использованного. Ваш код должен иметь возможность справиться с этим – это, кстати, кеш, а не база данных.
APC сохранит его в памяти.
вы можете установить размер, который хотите использовать, используя apc.shm_size
это ссылка, объясняющая, как работает APC. http://lampzone.wordpress.com/2010/03/26/how-does-apc-work/
И список всех настроек APC http://php.net/manual/en/apc.configuration.php
APC всегда хранит данные в памяти, она предназначена для этого и ничего другого. Вы не можете записывать данные APC на диск, но вы можете, конечно, реализовать несколько различных адаптеров для хранения данных для ваших потребностей в кешировании. Если вы хотите, чтобы некоторые вещи были сохранены на диске, используйте адаптер файлов. Различные настройки размера – это то, сколько памяти вы выделяете APC, и если вы ее превысите, APC начнет сброс LIFO. Это должно повлиять только на вашу производительность и ничего больше. Ваше приложение должно работать с кешем или без него. Если это не так, вы злоупотребляете идеей кэширования настойчивости.