インターネットの継続的な発展に伴い、Web サイトのアクセス数は増加しており、Web サイトの可用性とパフォーマンスを確保するために、キャッシュ、分散、負荷分散は必須のテクノロジーとなっています。 . . PHP 開発では、キャッシュの分散と負荷分散をどのように実現するかが大きな課題です。この記事では、Redis および Memcached に基づく分散キャッシュと Nginx に基づく負荷分散を紹介し、PHP 開発者がこれらのテクノロジーをより深く理解し、適用できるようにする具体的なコード例を示します。
1. Redis と Memcached に基づく分散キャッシュ
Redis と Memcached はどちらも一般的に使用されるキャッシュ システムであり、両方とも分散キャッシュをサポートしています。ここでは、Redis と Memcached を使用して分散キャッシュを実装する方法を紹介します。
Redis 分散キャッシュはクラスターを通じて実装されており、主に次の特徴があります:
次に、Redis を使用して分散キャッシュを実装する例を示します。
1.1 Redis 拡張機能のインストール
最初に、Redis 拡張機能をインストールする必要があります。 Ubuntu システムで次のコマンドを実行します。
$ sudo apt-get install php-redis
CentOS システムで次のコマンドを実行します。
$ sudo yum install php-redis
1.2 Redis 接続を作成します
次のコードを使用して、 Redis 接続を作成します:
$redis = new Redis(); $redis->connect('127.0.0.1', 6379);
ここではデフォルトのホスト アドレスとポート番号を使用しますが、実際の使用状況に応じて変更する必要があります。
1.3 データの保存
次のコードを使用してデータを保存できます:
$key = 'name'; $value = 'tom'; $redis->set($key, $value);
1.4 データの取得
次のコードを使用してデータを取得できます:
$key = 'name'; $value = $redis->get($key);
Memcached の分散キャッシュは、複数のマシンで構成されるクラスターを通じて実装されており、主に次の特徴があります:
次に、Memcached を使用して分散キャッシュを実装する例を示します。
2.1 Memcached 拡張機能のインストール
次のコマンドを使用して、Memcached 拡張機能をインストールできます。
$ sudo apt-get install php-memcached
or
$ sudo yum install php-memcached
2.2 Memcached 接続の作成
次のコードを使用して Memcached 接続を作成できます:
$memcached = new Memcached(); $memcached->addServer('127.0.0.1', 11211);
ここではデフォルトのホストを使用します。アドレスとポート番号は、実際の使用時に状況に応じて変更する必要があります。
2.3 データの保存
次のコードを使用してデータを保存できます:
$key = 'name'; $value = 'tom'; $memcached->set($key, $value);
2.4 データの取得
次のコードを使用してデータを取得できます:
$key = 'name'; $value = $memcached->get($key);
2. Nginx
に基づく負荷分散 Nginx は、高性能 HTTP およびリバース プロキシ サーバーであり、ポーリング、加重ポーリング、および負荷分散アルゴリズムなどのさまざまな負荷分散アルゴリズムをサポートしています。 IP の値切り交渉、Xi ら。以下では、Nginx を使用して負荷分散を実装する方法と、具体的なコード例を紹介します。
次のコマンドを使用して Nginx をインストールできます:
Ubuntu システムで次のコマンドを実行します:
$ sudo apt-get install nginx
CentOS システムで次のコマンドを実行します。
$ sudo yum install nginx
次に、Nginx を構成する必要があります。 Nginx 構成ファイル (通常は /etc/nginx/nginx.conf にあります) を編集する必要があります:
user www-data; worker_processes auto; pid /run/nginx.pid; events { worker_connections 768; multi_accept on; } http { upstream backend { server 192.168.1.1:8080; # 服务器1 server 192.168.1.2:8080; # 服务器2 server 192.168.1.3:8080; # 服务器3 } server { listen 80 default_server; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } }
上記の構成ファイルは 3 つのサーバーを指定し、これら 3 つのサーバーのいずれかに HTTP リクエストをプロキシします。ここで、backend はプロキシ サーバーの名前であり、必要に応じて変更できます。
次のコマンドを使用して Nginx を起動できます:
Ubuntu システムで次のコマンドを実行します:
$ sudo systemctl start nginx
CentOS システムで次のコマンドを実行します:
$ sudo systemctl start nginx
ブラウザを使用して http://localhost にアクセスします。通常のページが表示される場合は、負荷分散が開始されたことを意味します。
結論
この記事では、Redis と Memcached を使用して分散キャッシュを実装する方法と、Nginx を使用して負荷分散を実装する方法を紹介し、具体的なコード例を示します。実際のニーズに基づいて適切なテクノロジーとアルゴリズムを選択し、システムのパフォーマンスと可用性を向上させることができます。
以上がPHP 開発キャッシュの分散と負荷分散の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。