現在の位置: ホーム> 最新記事一覧> さまざまな環境でAPCU_ENTRYをサポートするようにAPCU拡張機能を構成する方法

さまざまな環境でAPCU_ENTRYをサポートするようにAPCU拡張機能を構成する方法

gitbox 2025-05-18

APCU(代替PHPキャッシュユーザー)は、メモリレベルのキャッシュをサポートするPHPユーザーデータキャッシュ拡張機能です。 Opcacheで使用すると、PHPアプリケーションのパフォーマンスを大幅に改善できます。 APCU_ENTRY関数は、単純なインターフェイスを提供します。

 $value = apcu_entry('cache_key', function() {
    // キャッシュされたデータを生成するコード
    return expensiveOperation();
});

CACHE_KEYがキャッシュに存在する場合、対応するキャッシュ値は直接返されます。それ以外の場合、コールバックが実行され、結果がキャッシュされて返されます。

2。APCU拡張機能をインストールして有効にします

1。Linux環境で

APCUは、ほとんどのLinuxディストリビューションのPHP拡張パッケージマネージャーで提供されており、インストール方法は次のとおりです。

 sudo apt-get install php-apcu

インストールが完了したら、PHP-FPMまたはWebサーバーを再起動します。

 sudo systemctl restart php7.4-fpm

2。Windows環境

Windowsユーザーは、 gitbox.netからAPCU DLLの対応するバージョンをダウンロードし、PHPのext Directoryに配置し、 PHP.iniに追加できます。

 extension=php_apcu.dll

サーバーを再起動すると有効になります。

3. APCUがAPCU_Entryをサポートしていることを確認します

APCU_Entryは、APCU 5.1.0以上が提供する新しいインターフェイスです。 APCUの低いバージョンを使用する場合、この関数を呼び出すことはできません。バージョンは、次のコードで検出できます。

 echo phpversion('apcu');

バージョンが低すぎる場合は、拡張機能をアップグレードすることをお勧めします。

4.さまざまな環境の構成のキーポイント

1。CLI環境

APCUは、デフォルトでコマンドラインモードキャッシュを有効にしません。構成するには、 php.iniを開く必要があります。

 apc.enable_cli=1

それ以外の場合、 APCU_EntryはCLIの下でデータをキャッシュできません。

2。マルチサーバークラスター環境

APCUはローカルメモリキャッシュであり、分布をサポートしていません。アプリケーションが複数のサーバーに展開されている場合、キャッシュされたデータは同期されません。 RedisやMemcachedなどの分散キャッシュソリューションを組み合わせることをお勧めします。

3。共有ホスティング環境

一部の共有ホストは、デフォルトでAPCUを無効にしているか、構成が制限されています。最初にホストサポートを確認し、必要に応じてカスタマーサービスに連絡するか、サービスをアップグレードすることをお勧めします。

5。APCU_ENTRY関数の使用の例

以下は、 APCU_ENTRYを使用してデータベースクエリの結果をキャッシュする方法を示す簡単な例です。

 <?php
// データベースのクエリの結果をキャッシュします
$userData = apcu_entry('user_123', function() {
    // データベースクエリをシミュレートします
    return ['id' => 123, 'name' => 'チャン・サン', 'email' => '[email protected]'];
});

print_r($userData);

実行結果中、最初の実行はコールバック関数を呼び出してキャッシュを生成し、その後のキャッシュは直接読み取ります。

6。FAQのトラブルシューティング

  • 関数にエラーはありません。APCU拡張が正しくインストールされ、有効になっていることを確認してください。

  • 無効なキャッシュAPC.ENABLE_CLIが1かどうかを確認します(CLIで使用される場合)。

  • キャッシュが更新されていない:コールバック関数が論理的に正しく、キャッシュがクリーニングされていないことを確認してください。


上記の手順を通じて、APCU拡張機能を構成し、動作環境に応じて構成を調整すると、 APCU_Entry関数が正常に機能し、PHPアプリケーションのパフォーマンスを効果的に改善できるようにします。