PHP 5.5 включает по умолчанию zend opcache, что в основном означает, что почти никто не будет использовать APC.
Но что использовать вместо кеша пользовательских данных в APC (apc_store & apc_fetch & like)?
Один случай использования, когда мне очень нравится использовать кеш данных пользовательских данных APC, – это «версии» статических активов (javascript, css ..). Всякий раз, когда я ссылаюсь на статический файл, я добавляю хеш его содержимого в URL-адрес (например, <script src = / script.js> станет <script src = / script.js? V = hash>), так что браузер всегда использует текущую версию и может кэшировать его навсегда.
Я могу представить, используя redis или memcache для хранения хэшей статических файлов, но кажется глупым попросить другой процесс по сети или сокету просто получить хэш содержимого файла. Кэш данных пользовательских данных APC (который находится в общей памяти и имеет доступ к нему почти так же быстро, как и доступная переменная php), как раз то, что нужно использовать для таких данных.
Поэтому возникает вопрос: что использовать в php 5.5 для кэширования небольших битов данных вместо APC?
Начиная с PHP 5.5, пользовательские данные APC упаковываются отдельно как PECL APCu .
brew install php55-apcu
) apt-get install php5-apcu
) yum install php-pecl-apcu
) Это позволяет использовать все функции кеша пользователя , такие как apc_store () . Он также вернет true
для extension_loaded('apc')
– это означает, что все библиотеки в зависимости от APC будут работать аналогично PHP 5.4.
Я недавно рассмотрел этот вопрос после обновления с php 5.3 до php 5.5 beta 2.
Я посмотрел на Мемкаш и Редис. В зависимости от того, кого вы спросите, производительность между ними примерно одинакова. Некоторые утверждают, что Redis немного быстрее. Однако у Redis гораздо больше возможностей, чем у Memcahe, поэтому я решил пойти с Redis.
Для PHP-клиента я выбрал Phpredis над Predis. Phpredis является расширением C, тогда как Predis – чистой реализацией PHP. Таким образом, Phpredis, как правило, быстрее.
В основном я использую Redis для кэширования и получения сериализованных объектов. Я начал проект, который я сейчас разрабатываю в PHP 5.3 с APC. Я продолжаю разрабатывать проект с php 5.5 и Redis. Хотя у меня нет контрольной статистики, я могу сказать вам, что приложение «чувствует» быстрее. Вероятно, это связано с повышением производительности в php 5.5, в отличие от стилей кэша пользователей APC Redis. В любом случае, я доволен своим выбором.
Надеюсь, это поможет. Удачи и счастливого взлома 🙂
Больше нечего сказать. Вы получили правильный ответ. Я убежден, что могу предоставить вам ссылку на учебное пособие по загрузке и установке APCu на XAMPP в Windows для php 5.5 и 5.6:
Link do загрузить APCu для php build от 5.3 и выше: скачать APCu разные версии
Учебник по установке : instalatioiin instrumentscions ( самая новая версия должна быть в самом низу списка файлов – используйте эту)
Также имейте в виду, что у вас будет два варианта выбора из нескольких вариантов, таких как 64 или 84, а также nts или ts и vc9 или vc11 (это может быть разным в вашем случае) и, конечно, версия corct php (в моем случае это будь то PHP 5.6 для моего xampp).
ПРИМЕР:
если вы хотите выбрать правильный, вы должны сначала запустить phpinfo () и проверить эти параметры:
Zend Extension Build and Architecture
В моем случае это будет:
[Zend Extension Build:] API220131226,TS,VC11 [Architecture:] x86
Это означает, что в моем случае мне пришлось бы выбрать ACLu wchich содержать в имени файла те параметры 5.6, TS, VC11, 86
имя файла для загрузки : php_apcu-4.0.7-5.6-ts-vc11-x86.zip
Надеюсь, что это ясно для вас.
Некоторые дополнительные пояснения к различным строкам PHP:
Разница ts vs nts: TS относится к многопоточным конструкциям. NTS ссылается только на один поток. Вариант использования двоичных файлов TS включает взаимодействие с многопоточным SAPI и PHP, загружаемым как модуль, в веб-сервер. Для двоичных файлов NTS широко распространенным случаем является взаимодействие с веб-сервером через протокол FastCGI, без использования многопоточности (но также, например, CLI).
Разница vc9 vs vc11 vs vc14: Более свежие версии PHP построены с помощью VC9, VC11 или VC14 (соответственно, Visual Studio 2008, 2012 или 2015) и включают улучшения в производительности и стабильности.
разница 86 против 64: сборки x64 для PHP для Windows должны считаться экспериментальными и еще не обеспечивать поддержку 64-битного целого или большого файла.
Взгляните на кэширование кода XCache, от авторов lighttpd. Он поддерживает как php 5.5, так и кеш данных пользователя: http://xcache.lighttpd.net/wiki/XcacheApi
Я не пробовал себя сам (все еще использую APC и php 5.4).