PHPで高い並行性の問題を解決するいくつかの方法。

图片[1]-《解决PHP高并发问题的几种方法》-光子波动网 | 专业WordPress修复服务,全球范围,快速响应

PHPの高い並行性の問題を解決するには?

並行性の高いシナリオでは、PHPサーバーはしばしばパフォーマンスのボトルネックに遭遇します。この記事では、PHP の並行性の高い問題を解決するための一般的な方法として、 キャッシュの使用、PHP-FPM の使用、非同期処理の使用などを紹介します。

1.キャッシュの使用

キャッシュの使用は、サーバーのパフォーマンスを向上させる一般的な方法の1つです。よく使われるデータをメモリにキャッシュすることで、 リクエストのたびにデータベースからデータを読み込む必要がなくなるので、 データベースへの負荷が減り、サーバーの応答性が向上します。PHP では、Redis や Memcached のようなキャッシュ技術を使用してデータキャッシュを実装することができます。

以下はRedisを使ったキャッシュのサンプルコードです:

phpコピーコード$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$data = $redis->get('key');
if (!$data) { $data = get('key')
  $data = getDataFromDB();
  $redis->setex('key', 3600, $data);
}

上記のコードでは、$redis->connect()メソッドでRedisサーバーに接続し、$redis->get()メソッドと$redis->setex()メソッドでキャッシュデータの読み書きを行っています。

2.PHP-FPMの使用

PHP-FPM (FastCGI Process Manager) は PHP FastCGI プロセスマネージャであり、PHP の並行性を向上させます。PHP-FPM は、リクエストを複数の PHP サブプロセスに分散させ、サーバの並行性を向上させます。

Ubuntuシステムでは、PHP-FPMは以下のコマンドでインストールできます:

arduinoコピーコードsudo apt-get install php-fpm

インストール後、nginx あるいは Apache のいずれかで PHP-FPM を設定する必要があります。 nginx の場合は、nginx 設定ファイルに以下のコードを追加することで設定できます:

perlCopy コードlocation ~ \.php$ {.
  fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
  fastcgi_index index.php; fastcgi_param SCRIPT_PARAM
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  fastcgi_params をインクルードします;
}

上のコードでは、fastcgi_pass で PHP-FPM プロセスのリスニングアドレスを指定し、 SCRIPT_FILENAME で PHP スクリプトのファイル名を指定しています。

3.非同期処理の利用

非同期処理は、ReactPHPやSwooleなどのツールを使ってPHPに実装することができます。

3.1 ReactPHPの使用

ReactPHPは、イベント駆動型の非同期プログラミングフレームワークで、高性能なサーバーアプリケーションを記述するために使用できます。ReactPHPでは、データベースの読み書きやネットワーク通信などの非同期処理を簡単に実装できます。

以下は、ReactPHPを使って非同期処理を実装したサンプルコードです:

phpコピーコード$loop = ReactEventLoop Factory::create();
$connector = new ReactSocketConnector($loop);
$connector->connect('tcp://127.0.0.1:80')->then(function (ReactSocketConnectionInterface $connection) { $connection->connect('tcp:/127.0.0.1:80')
    $connection->write("GET /")

3.2 Swooleの使用

Swooleは、高性能なPHPの非同期ネットワーク通信フレームワークであり、非同期IO、コプロセシング、マルチプロセシングおよびその他の機能を実装することができ、アプリケーション開発の高同期シナリオに非常に適しています。

以下はSwooleを使った非同期処理のサンプルコードです:

phpコピーコード$server = new SwooleHttpServer("127.0.0.1", 9501);
$server->on("request", function (SwooleHttpAppacheRequest $request, SwooleHttpAppacheResponse $response) { { $response->header("Content-Type", "Content-Type", "Content-Type", "Content-Type", "Content-Type", "Content-Type", "Content-Type", "Content-Type")
    $response->header("Content-Type", "text/plain");
    $response->end("Hello Worldn");
});
$server->start();

上記のコードでは、SwooleHttpServerクラスを使用してHTTPサーバーを作成し、$server->on()メソッドでイベントハンドラ関数を登録しています。

概要

これらは、PHP の並行処理が多い問題を解決するための一般的な方法のほんの一部です。キャッシュ、PHP-FPM および非同期処理の使用は、すべてサーバーのパフォーマンスを向上させることができます。実際には、複数の方法を組み合わせてサーバーのパフォーマンスを向上させることもできます。


お問い合わせ
記事が読めない?無料でお答えします!個人サイト、中小企業サイトのための無料ヘルプ!
電話:020-2206-9892
QQ咨询:1025174874
Eメール:info@361sale.com
勤務時間: 月~金、9:30~18:30、祝日休み
© 複製に関する声明
この記事はハリーが執筆しました。
終わり
好きなら応援してください。
クドス0 分かち合う
解説 ソファ購入

コメントを投稿するにはログインしてください

    コメントなし