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

Verteilung und Lastausgleich des PHP-Entwicklungscache

王林
Freigeben: 2023-11-07 16:28:02
Original
1126 Leute haben es durchsucht

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
Nach dem Login kopieren

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

$ sudo yum install php-redis
Nach dem Login kopieren

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);
Nach dem Login kopieren

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);
Nach dem Login kopieren

1.4 Daten abrufen

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

$key = 'name';
$value = $redis->get($key);
Nach dem Login kopieren
  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
Nach dem Login kopieren

oder

$ sudo yum install php-memcached
Nach dem Login kopieren

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);
Nach dem Login kopieren

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);
Nach dem Login kopieren

2.4 Daten abrufen

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

$key = 'name';
$value = $memcached->get($key);
Nach dem Login kopieren

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
Nach dem Login kopieren

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

$ sudo yum install nginx
Nach dem Login kopieren
  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;
        }
    }
}
Nach dem Login kopieren

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
Nach dem Login kopieren
Nach dem Login kopieren

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

$ sudo systemctl start nginx
Nach dem Login kopieren
Nach dem Login kopieren
  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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage