web-dev-qa-db-ja.com

PHP 5.5のapcユーザーデータキャッシュの代わりに何を使用しますか?

PHP5.5にはデフォルトでzendopcacheが含まれています。これは、基本的に、APCを使用する人がほとんどいないことを意味します。

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

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

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

したがって、問題は、APCの代わりに小さなデータをキャッシュするためにphp5.5で何を使用するかということです。

28
m6k

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

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

29
Artur Bodera

私は最近、php5.3からphp5.5 beta 2にアップグレードした後、この質問に対処しました。

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

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

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

それがお役に立てば幸いです。幸運と幸せなハッキング:-)

6
Neil Girardi

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

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

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

また、64または84バージョンやntsなどのいくつかのオプションから2つ選択できることにも注意してください。またはtsandvc9またはvc11(あなたの場合は異なる場合があります)そしてもちろん正しいPHPバージョン(私の場合はPHP 5.6)。

例:

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

Zend Extension BuildおよびArchitecture

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

[Zend Extension Build:] API220131226,TS,VC11

[Architecture:] x86

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

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

それがあなたのために物事をクリアすることを願っています。


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

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

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

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

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

0
DevWL