Intereting Posts
Алгоритм создания большого файла фиктивных файлов Создайте временную папку, чтобы сохранить файлы в структуре и сделать ее загружаемой путем сжатия папки Есть ли ярлык для вставки объекта объекта PHP при завершении кода в PhpStorm? Потоковое воспроизведение MP3 Невозможно установить mbstring php conflict проверьте, находится ли время (с часовым поясом) в заданном интервале времени Графическая диаграмма PHPExcel вызывает нечитаемое содержимое и диаграмму удалены cURL не может использовать клиентский сертификат, на локальном сервере Как получить значение строки запроса из значения URL, хранящегося в переменной? PHP Unlink, верните папки Включить ничего не делает Данные echo mysql с использованием group_concat в PHP Слияние массива на многомерном массиве Файловый кэш APC не работает, но пользовательский кеш прекрасно Проблема с автоинкрементным столбцом «id»

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

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 .

  • Исходный код: http://pecl.php.net/package/APCu
  • MacOS homebrew package – php55-apcu ( brew install php55-apcu )
  • Debian / ubuntu называется php5-apcu ( apt-get install php5-apcu )
  • Fedora / RedHat называется php-pecl-apcu ( yum install php-pecl-apcu )
  • Windows – используйте предварительно скомпилированную документацию 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) и включают улучшения в производительности и стабильности.

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

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

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

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