Optimieren Sie Ihre Datenbankleistung, indem Sie den Memcached-Server mit Ihren PHP- und Python-Apps verwenden
Wenn Sie jemals den Schmerz einer hohen Datenbanklast gespürt haben, die die Verlangsamung Ihrer Web-Apps verursacht, und sich gefragt haben: „Gibt es eine Möglichkeit, die durch DB-Abfragen verursachte Latenz zu verringern?“, dann ist die Antwort auf diese Frage ein klares Ja. Memcached, ein freundlicher Speichercache-Daemon aus der Nachbarschaft, ist hier, um all Ihre Probleme zu lösen! Das Caching der DB ist eine der einfachsten Methoden, um die DB-Last zu verringern und die dynamischen Webanwendungen zu beschleunigen.
Memcached definiert sich selbst als hochleistungsfähiges, verteiltes Speicherobjekt-Caching-System, generisch, aber ursprünglich für die Beschleunigung dynamischer Webanwendungen durch Verringerung der Datenbankbelastung gedacht. Entwickelt von Brad Fitzpatrick für seine Website LiveJournal im Jahr 2003.
In diesem Artikel werden wir uns ansehen, wie man Memcached in Ubuntu 20.04 installiert und konfiguriert und die sprachspezifischen Clients betrachten.
Voraussetzungen
Ein mit Ubuntu 20.04 installiertes System mit einem Benutzer mit Administratorrechten, also a sudo
Nutzer.
Installation
Memcached ist im offiziellen Ubuntu 20.04-Repository verfügbar. Zusätzlich zu Memcached werden wir auch ein CLI-Tool namens . installieren libmemcached-tools
Memcached zu verwalten. Führen Sie einfach den folgenden Befehl aus, um beide zu installieren
sudo apt install memcached libmemcached-tools
Installation überprüfen
Nachdem die Installation abgeschlossen ist, startet der Memcached-Daemon im Hintergrund von selbst. Um die Installation zu überprüfen, können wir einen Befehl von verwenden libmemcached-tools
-Paket, um Memcached-Serverstatistiken zu erhalten. Entweder laufen
memcstat --servers localhost
oder
memcstat --servers 127.0.0.1
Der memcstat
Befehl zeigt die Statistiken des laufenden Servers. Der obige Befehl führt zu einer Ausgabe, die unten angezeigt wird.
Verschiedene Statistiken wie Betriebszeit
in Sekunden, Ausführung
und pid
wird als Ausgabe angezeigt. Wenn jedoch keine Ausgabe angezeigt wird, ist es möglich, dass Memcached nicht ausgeführt wird. Daher müssen Sie den folgenden Befehl ausführen, um den Memcached-Server zu starten.
sudo systemctl starte memcached
Um den Memcached-Server beim Systemstart auszuführen, verwenden Sie den folgenden Befehl.
sudo systemctl aktivieren memcached
Memcached konfigurieren
Wenn Sie Memcached auf dem Website-Server selbst installiert haben, müssen Sie die Konfigurationsdatei nicht ändern, da Memcached für die Arbeit mit localhost vorkonfiguriert ist.
Wenn Sie Memcached hingegen auf einem separaten System installiert haben, müssen Sie die Konfiguration ändern, um dem Remote-Server Zugriff auf den Memcached-Server zu ermöglichen.
Einrichten des Remote-Zugriffs für Memcached-Server
Memcached ist anfällig für DDoS-Angriffe (Distributed Denial of Service). Eine falsche Firewall-Regel und offene UDP-Ports machen Ihren Server offen und anfällig für DDoS-Angriffe.
Um das Risiko zu mindern, können wir entweder das UDP-Protokoll für Memcached in der Konfiguration deaktivieren oder eine Firewall nur so einrichten, dass vertrauenswürdige Server zugelassen werden.
Ubuntu wird standardmäßig ohne offene TCP- oder UDP-Ports ausgeliefert. Darüber hinaus ist der Firewall-Daemon ufw
(unkomplizierte Firewall) ist standardmäßig nicht aktiviert.
Wir werden die Firewall aktivieren und die Memcached-Konfiguration einrichten, damit wir die DDoS-Sicherheitslücke mindern können.
Aktivieren Sie zuerst die ufw
indem Sie den folgenden Befehl ausführen:
sudo systemctl aktivieren ufw
Dann starte die ufw
service, indem Sie den folgenden Befehl ausführen:
sudo systemctl start ufw
Wenn die Firewall läuft, können wir endlich die Firewall-Regeln einrichten. Aktivieren Sie zunächst Port 22, um SSH-Verbindungen zuzulassen. SSH wird für den Remote-Zugriff auf den gewünschten Server benötigt.
sudo ufw erlauben 22
Zweitens müssen Sie die IP-Adresse des Clients kennen, dh den Host der Webanwendung, und die IP-Adresse des Servers, dh des Memcached-Servers.
Nehmen wir in diesem Fall an, dass die Client-IP 192.168.0.4
und Memcached-Server-IP zu sein 192.168.0.5
in einem lokalen Netzwerk.
Um den Fernzugriff des Memcached-Servers auf den Client-Server zu ermöglichen, führen Sie Folgendes aus:
sudo ufw erlauben von 192.168.0.4 zu jedem Port 11211
Ersetze das 192.168.0.4
mit Ihrer gewünschten Client-IP-Adresse.
Bearbeiten Sie als Nächstes die Memcached-Konfigurationsdatei unter /etc/memcached.conf
durch Laufen Nano
Befehl.
sudo nano /etc/memcached.conf
Der memcached.conf
Konfigurationsdatei wird mit dem Nano-Editor geöffnet, suchen Sie nach dem -l 127.0.0.1
Zeile in der Konfiguration und ersetzen 127.0.0.1
mit Ihrer Memcached Server IP oder in diesem Fall 192.168.0.5
.
Nach dem Ersetzen drücken Sie Strg+O
Um in die Konfigurationsdatei zu schreiben und die Eingabetaste zu drücken, drücken Sie Strg+x
Nano zu verlassen.
Starten Sie den Memcached-Server neu und ufw
Firewall, indem Sie den folgenden Befehl ausführen.
sudo systemctl Neustart von Memcached ufw
Jetzt sind wir mit der Installation und Konfiguration des Memcached-Servers auf Ubuntu 20.04 fertig.
Verbindung zum Memcached-Server herstellen
Um den Memcached-Server zu verwenden, müssen Sie einen sprachspezifischen Client installieren. Glücklicherweise unterstützt Memcached viele gängige Sprachen.
Also lassen Sie uns sehen, wie man es installiert php
und Python
Client für Memcached.
PHP ist die beliebteste serverseitige Skriptsprache und Memcached wird hauptsächlich von Webentwicklern verwendet, um die Serverleistung von Webanwendungen mit PHP zu verbessern.
Um die Memcached-Unterstützung in PHP zu installieren, Lauf:
sudo apt installiere php-memcached
Auch Python verfügt über mehrere Bibliotheken, die mit Memcached-Servern arbeiten und interagieren können, wie z pymemcached
oder python-memcached
.
Sie können Memcached für Python installieren, indem Sie die folgenden pip-Befehle ausführen:
pip installiere pymemcache
pip install python-memcached
Abschließend haben wir uns die Installation, Konfiguration und einige sprachspezifische Clients von Memcached in Ubuntu 20.04 angesehen.
Um mehr über die grundlegende und erweiterte Verwendung von Memcached zu erfahren, werfen Sie einen Blick auf das Memcached-Wiki.