28

PHP 5.5 にはデフォルトで zend opcache が含まれています。つまり、基本的に APC を使用する人はほとんどいません。

しかし、APC のユーザー データ キャッシュ部分 (apc_store と apc_fetch など) の代わりに何を使用すればよいでしょうか?

私が APC ユーザー データ キャッシュの使用を本当に好むユース ケースの 1 つは、静的アセット (javascript、css..) の「バージョン」です。静的ファイルを参照するたびに、そのコンテンツのハッシュを URL に追加します (たとえば、<script src=/script.js> は <script src=/script.js?v=hash> になります)。これにより、ブラウザーは常に現在のバージョンを使用します。永続的にキャッシュできます。

redis または memcache を使用して静的ファイルのハッシュを保存することは想像できますが、ファイル コンテンツのハッシュを取得するためだけに、ネットワークまたはソケットを介して別のプロセスに要求するのはばかげているようです。APC ユーザー データ キャッシュ (共有メモリ内にあり、php 変数にアクセスするのとほぼ同じ速度でアクセスできます) は、そのようなデータに使用するのに適しているようです。

問題は、PHP 5.5 で APC の代わりに少量のデータをキャッシュするために何を使用するかということです。

4

4 に答える 4

29

PHP 5.5 以降、APC ユーザー データ ストレージはPECL APCuとして個別にパッケージ化されています。

これにより、 apc_store()などのすべてのユーザー キャッシュ関数を使用できます。forも返されます- これは、APC に依存するすべてのライブラリが PHP 5.4 と同様に機能することを意味します。trueextension_loaded('apc')

于 2014-01-09T09:26:56.203 に答える
6

最近、php 5.3 から php 5.5 beta 2 にアップグレードした後、この質問に対処しました。

私は Memcache と Redis を見ました。誰に尋ねるかにもよりますが、両者のパフォーマンスはほぼ同じです。Redis の方がわずかに高速であると主張する人もいます。ただし、Redis は Memcahe よりも多くの機能を備えているため、Redis を使用することにしました。

PHP クライアントには、Predis ではなく Phpredis を選択しました。Phpredis は C 拡張機能ですが、Predis は純粋な PHP 実装です。したがって、Phpredis は一般的に高速です。

私は主に Redis を使用して、シリアル化されたオブジェクトをキャッシュおよび取得しています。APC を使用して PHP 5.3 で現在開発しているプロジェクトを開始しました。私は、php 5.5 と Redis を使用してプロジェクトを開発し続けています。ベンチマークの統計はありませんが、アプリがより速く「感じられる」ことはわかります。これは、APC ユーザー キャッシュ対 Redis とは対照的に、php 5.5 のパフォーマンス強化によるものと思われます。いずれにせよ、私は自分の選択に満足しています。

それが役立つことを願っています。幸運と幸せなハッキング:-)

于 2013-08-03T18:06:08.110 に答える
0

これ以上言うことはありません。あなたはすでに正しい答えを得ています。PHP 5.5 および 5.6 用の Windows 上の XAMPP に APCu をダウンロードしてインストールする方法のチュートリアルへのリンクを提供できると思います。

5.3以降のphpビルド用のAPCuをダウンロードするリンク: APCuの異なるバージョンをダウンロード

インストール チュートリアル: インストール手順(最新バージョンはファイル リストの一番下にあります。これを使用してください)

また、64 または 84バージョン、nts または tsvc9 または vc11 (あなたの場合は異なる可能性があります)、そしてもちろん正しい PHP バージョン(私の場合は私のxamppではPHP 5.6になります)。

例:

正しく選択したい場合は、最初に phpinfo() を実行して、それらのパラメーターを確認する必要があります。

Zend 拡張機能のビルドアーキテクチャ

私の場合、それは次のようになります。

[Zend Extension Build:] API220131226,TS,VC11

[Architecture:] x86

つまり、私の場合、ファイル名にこれらのパラメーター5.6、TS、VC11、86 を含む ACLu を選択する必要があります。

ダウンロードするファイル名: php_apcu-4.0.7-5.6-ts-vc11-x86.zip

あなたのために物事を片付けることを願っています。


異なる PHP ビルドに関するいくつかの追加説明:

ts と nts の違い: TS はマルチスレッド対応のビルドを指します。NTS は、シングル スレッドのみのビルドを指します。TS バイナリの使用例には、Web サーバーにモジュールとしてロードされたマルチスレッド SAPI および PHP との対話が含まれます。NTS バイナリの場合、広く使用されているユース ケースは、FastCGI プロトコルを介した Web サーバーとの対話であり、マルチスレッドを使用しません (ただし、CLI なども使用します)。

違い vc9 vs vc11 vs vc14: PHP の最近のバージョンは、VC9、VC11、または VC14 (それぞれ Visual Studio 2008、2012、または 2015 コンパイラ) で構築されており、パフォーマンスと安定性が向上しています。

  • VC9 ビルドでは、Visual Studio 2008 SP1 x86 または x64 用の Visual C++ 再頒布可能パッケージがインストールされている必要があります。
  • VC11 ビルドでは、Visual Studio 2012 x86 または x64 用の Visual C++ 再頒布可能パッケージがインストールされている必要があります。
  • VC14 ビルドでは、Visual Studio 2015 x86 または x64 用の Visual C++ 再頒布可能パッケージがインストールされている必要があります。

違い 86 と 64: Windows 用の PHP の x64 ビルドは実験的なものと見なされるべきであり、64 ビット整数または大きなファイルのサポートはまだ提供されていません。

于 2015-11-15T04:42:25.710 に答える
-1

lighttpd の作成者による XCache オペコード キャッシャーを見てみましょう。PHP 5.5 とユーザー データ キャッシュの両方をサポートしています: http://xcache.lighttpd.net/wiki/XcacheApi

私は自分で試しませんでした(まだAPCとphp 5.4を使用しています)。

于 2013-12-13T09:47:46.037 に答える