Подтвердить что ты не робот

Что использовать вместо кэша пользовательских данных apc в php 5.5?

PHP 5.5 включает по умолчанию zend opcache, что в основном означает, что почти никто не будет использовать APC.

Но что использовать вместо кеша пользовательских данных в APC (apc_store и apc_fetch и т.п.)?

В одном случае, когда мне очень нравится использовать кеш данных пользовательских данных APC, это "версии" статических активов (javascript, css..). Всякий раз, когда я ссылаюсь на статический файл, я добавляю хеш его содержимого в URL-адрес (например, < script src=/script.js > будет < script src=/script.js? V = hash > ;), так что браузер всегда использует текущую версию и может кэшировать ее постоянно.

Я могу представить, используя redis или memcache для хранения хэшей статических файлов, но кажется глупым попросить другой процесс по сети или сокету просто получить хэш содержимого файла. Кэш данных пользовательских данных APC (который находится в общей памяти и имеет доступ к нему почти так же быстро, как и доступная переменная php), как раз то, что нужно использовать для таких данных.

Итак, возникает вопрос: что использовать в php 5.5 для кэширования небольших битов данных вместо APC?

4b9b3361

Ответ 1

Начиная с PHP 5.5 хранилище пользовательских данных APC упаковывается отдельно как PECL APCu.

Это позволяет использовать все функции пользовательского кеша, такие как apc_store(). Он также вернет true для extension_loaded('apc') - это означает, что все библиотеки в зависимости от APC будут работать аналогично PHP 5.4.

Ответ 2

Недавно я рассмотрел этот вопрос после обновления с 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. В любом случае, я доволен своим выбором.

Надеюсь, это поможет. Удачи и счастливого взлома: -)

Ответ 3

Больше нечего сказать. Вы получили правильный ответ. Я думаю, я могу предоставить вам ссылку на учебное пособие по загрузке и установке APCu на XAMPP в Windows для php 5.5 и 5.6:

Ссылка скачать APCu для php build от 5.3 и выше: загрузить APCu разные версии

Учебник по установке: instalatioiin instrumentscions (самая новая версия должна быть в самом низу списка файлов - используйте этот)

Также имейте в виду, что у вас будет два варианта из нескольких вариантов, таких как 64 или 84, а также nts или ts и vc9 или vc11 (это может быть разным в вашем случае) и, конечно же, corpp php version (в моем случае это будет PHP 5.6 для моего xampp).

ПРИМЕР:

если вы хотите выбрать правильный, вам нужно сначала запустить phpinfo() и проверить эти параметры:

Расширение Zend Build и Архитектура

В моем случае это будет:

[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) и включают улучшения в производительности и стабильности.

  • Для сборки VC9 требуется, чтобы на Visual С++ распространялся для Visual Studio 2008 с пакетом обновления 1 (SP1) x86 или x64.
  • Для сборки VC11 требуется, чтобы на Visual С++ распространялся для Visual Studio 2012 x86 или x64.
  • Для сборки VC14 требуется наличие распространяемого на Visual С++ для Visual Studio 2015 x86 или x64.

разница 86 против 64: X64 сборки PHP для Windows следует считать экспериментальными и еще не обеспечить поддержку 64-битного целого или большого файла.

Ответ 4

Взгляните на кэширование кода XCache, от авторов lighttpd. Он поддерживает как php 5.5, так и кеш данных пользователя: http://xcache.lighttpd.net/wiki/XcacheApi

Я не пробовал себя сам (все еще использую APC и php 5.4).