Heim  >  Artikel  >  Backend-Entwicklung  >  Verteilung und Lastausgleich des PHP-Entwicklungscache

Verteilung und Lastausgleich des PHP-Entwicklungscache

王林
王林Original
2023-11-07 16:27:321099Durchsuche

Verteilung und Lastausgleich des PHP-Entwicklungscache

Mit der kontinuierlichen Weiterentwicklung des Internets steigt die Anzahl der Website-Besuche. Um die Verfügbarkeit und Leistung der Website sicherzustellen, sind Caching, Verteilung und Lastausgleich zu wesentlichen Technologien geworden. Bei der PHP-Entwicklung ist es eine große Herausforderung, die Cache-Verteilung und den Lastausgleich zu erreichen. In diesem Artikel stellen wir verteiltes Caching auf Basis von Redis und Memcached sowie Lastausgleich auf Basis von Nginx vor und stellen spezifische Codebeispiele bereit, um PHP-Entwicklern dabei zu helfen, diese Technologien besser zu verstehen und anzuwenden.

1. Verteiltes Caching basierend auf Redis und Memcached

Redis und Memcached sind beide häufig verwendete Caching-Systeme und unterstützen beide verteiltes Caching. Im Folgenden wird erläutert, wie Sie mit Redis und Memcached verteiltes Caching implementieren.

  1. Redis Distributed Cache

Der verteilte Cache von Redis wird über einen Cluster implementiert. Er verfügt hauptsächlich über die folgenden Funktionen:

  • Daten-Sharding. Redis unterteilt die Daten in mehrere Fragmente und speichert sie auf mehreren Computern, während unterschiedliche Schlüssel-Wert-Paare auf verschiedenen Computern gespeichert werden.
  • Datenkopie. Redis unterstützt den Master-Slave-Replikationsmechanismus, d. h. der Master-Knoten synchronisiert Daten mit dem Slave-Knoten, um die Datenzuverlässigkeit sicherzustellen.
  • Knotenverwaltung. Der Redis-Cluster wählt über den Wahlmechanismus einen oder mehrere Knoten für die Verwaltung aus. Diese Knoten werden „Slots“ genannt.

Das Folgende ist ein Beispiel für die Verwendung von Redis zur Implementierung von verteiltem Caching:

1.1 Installieren Sie die Redis-Erweiterung

Zuerst müssen wir die Redis-Erweiterung installieren. Führen Sie den folgenden Befehl auf dem Ubuntu-System aus:

$ sudo apt-get install php-redis

Führen Sie den folgenden Befehl auf dem CentOS-System aus:

$ sudo yum install php-redis

1.2 Erstellen Sie eine Redis-Verbindung.

Wir können den folgenden Code verwenden, um eine Redis-Verbindung zu erstellen:

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

Hier haben wir die Standard-Hostadresse verwendet und Die Portnummer muss entsprechend der tatsächlichen Situation während der tatsächlichen Verwendung geändert werden.

1.3 Daten speichern

Wir können den folgenden Code zum Speichern von Daten verwenden:

$key = 'name';
$value = 'tom';
$redis->set($key, $value);

1.4 Daten abrufen

Wir können den folgenden Code verwenden, um Daten abzurufen:

$key = 'name';
$value = $redis->get($key);
  1. Memcached verteilter Cache

Der verteilte Cache von Memcached ist es wird durch einen Cluster implementiert, der aus mehreren Maschinen besteht. Es verfügt hauptsächlich über die folgenden Funktionen:

  • Daten-Sharding. Memcached fragmentiert Daten und speichert jedes Fragment auf einem anderen Computer, wodurch die Cache-Kapazität erhöht wird.
  • Serverfehler. Wenn ein Server ausfällt, migriert Memcached die Daten automatisch auf andere Server, um Datenverluste zu vermeiden.
  • Knotenverwaltung. Der Memcached-Cluster wird über den Node-Manager verwaltet, der eine automatische Fehlererkennung und einen Lastausgleich auf dem Cache-Server durchführen und so die Systemverfügbarkeit verbessern kann.

Hier ist ein Beispiel für die Verwendung von Memcached zur Implementierung von verteiltem Caching:

2.1 Memcached-Erweiterung installieren

Wir können den folgenden Befehl verwenden, um die Memcached-Erweiterung zu installieren:

$ sudo apt-get install php-memcached

oder

$ sudo yum install php-memcached

2.2 Erstellen Sie eine Memcached-Verbindung

Wir Sie können den folgenden Code verwenden, um eine Memcached-Verbindung zu erstellen:

$memcached = new Memcached();
$memcached->addServer('127.0.0.1', 11211);

Hier verwenden wir die Standard-Hostadresse und Portnummer, die entsprechend der tatsächlichen Situation bei der tatsächlichen Verwendung geändert werden müssen.

2.3 Daten speichern

Wir können den folgenden Code verwenden, um Daten zu speichern:

$key = 'name';
$value = 'tom';
$memcached->set($key, $value);

2.4 Daten abrufen

Wir können den folgenden Code verwenden, um Daten abzurufen:

$key = 'name';
$value = $memcached->get($key);

2. Lastausgleich basierend auf Nginx

Nginx ist ein Hochleistungs-HTTP- und Reverse-Proxy-Server, unterstützt mehrere Lastausgleichsalgorithmen wie Round Robin, Weighted Round Robin, IP-Hashing usw. Im Folgenden wird die Verwendung von Nginx zum Implementieren des Lastausgleichs vorgestellt und spezifische Codebeispiele bereitgestellt.

  1. Nginx installieren

Wir können Nginx mit dem folgenden Befehl installieren:

Führen Sie den folgenden Befehl im Ubuntu-System aus:

$ sudo apt-get install nginx

Führen Sie den folgenden Befehl im CentOS-System aus:

$ sudo yum install nginx
  1. Configure.Nginx

Die Der nächste Schritt besteht darin, die Nginx-Konfiguration zu konfigurieren. Wir müssen die Nginx-Konfigurationsdatei bearbeiten, die sich normalerweise unter /etc/nginx/nginx.conf befindet:

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;
        }
    }
}

Die obige Konfigurationsdatei gibt drei Server und Proxy-HTTP-Anfragen an jeden dieser drei Server an. Dabei ist Backend der Name des Proxyservers und kann nach Bedarf geändert werden.

  1. Nginx starten

Wir können den folgenden Befehl verwenden, um Nginx zu starten:

Führen Sie den folgenden Befehl im Ubuntu-System aus:

$ sudo systemctl start nginx

Führen Sie den folgenden Befehl im CentOS-System aus:

$ sudo systemctl start nginx
  1. Test

Verwenden Sie den Browser, um Greifen Sie auf http://localhost zu. Wenn Sie eine normale Seite sehen, bedeutet dies, dass der Lastausgleich gestartet wurde.

Fazit

In diesem Artikel wird erläutert, wie Sie mit Redis und Memcached verteiltes Caching implementieren und wie Sie Nginx zum Implementieren des Lastausgleichs verwenden, und es werden spezifische Codebeispiele bereitgestellt. Wir können geeignete Technologien und Algorithmen basierend auf den tatsächlichen Anforderungen auswählen, um die Systemleistung und -verfügbarkeit zu verbessern.

Das obige ist der detaillierte Inhalt vonVerteilung und Lastausgleich des PHP-Entwicklungscache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn