CityHost.UA
Hilfe und Unterstützung

Caching-Dienste für Websites: Memcached, OPCache, Redis

 10921
18.10.2021
article

 

 

Was ist Daten-Caching?

Caching von Webseiten — eine Möglichkeit, die Leistung des Servers durch Reduzierung der Belastung der Rechenressourcen zu beschleunigen. 

Der Hauptunterschied zwischen Cache-Speichern ist, dass sie um ein Vielfaches schneller sind als das Hauptspeicher, die Daten werden sofort aus ihnen abgerufen und verarbeitet.

Wie funktioniert das? Wenn ein Benutzer eine Seite der Website öffnet, sendet er eine Anfrage an den Server, die verarbeitet wird und eine Antwort in Form einer kompilierten Seite zurückgegeben wird. 

Jede Minute führen Tausende von Besuchern Aktionen auf Webressourcen durch, und all diese Prozesse werden auf dem Server verarbeitet, was eine ständige Belastung erzeugt. 

Wenn der Prozessor nicht in der Lage ist, alle Aufgaben schnell zu verarbeiten, kann die Ladegeschwindigkeit der Webseiten sinken. Dies schadet der Besucherzahl (wenn der Benutzer nicht auf eine schnelle Antwort wartet, schließt er einfach den Tab) und verschlechtert die Positionen in der Suchmaschine (die Geschwindigkeit — eine der Schlüsselmetriken bei der Ranking von Websites).

Um nicht jedes Mal die gleichen Manipulationen durchzuführen, werden wiederholte Aktionen in temporären Dateien im Zwischenspeicher gespeichert. Der Zugriff darauf erfolgt einfacher und schneller, es ist nicht notwendig, immer wieder eine Abfrage der Daten auf den Hauptlaufwerken zu erstellen.

Beispielsweise werden bereits angezeigte Bilder im Cache des Browsers des Benutzers gespeichert. Wenn er die Website ein zweites Mal besucht, wird keine Anfrage an den Server gestellt, sondern das Bild wird einfach aus dem Speicher des Computers abgerufen. 

Wenn man den Domainnamen der Lieblingsseite in die Adresszeile eingibt und die fertige Seite erhält, ahnen die meisten Benutzer nicht einmal, dass ein Teil dieser Seite (oder sogar die gesamte Seite) bereits auf ihrem Computer gespeichert ist. 

Interessant ist, dass unser Gehirn ebenfalls Caching verwendet. Wenn es zum ersten Mal mit einem Objekt (Apfel, Haus, Katze) konfrontiert wird, benötigt es Zeit und Ressourcen, um es zu studieren und einen Informationsblock zu bilden (Eigenschaften, Zweck, gefährlich/sicher). Bei den nächsten Begegnungen mit dem Objekt müssen wir nicht alle verfügbaren Daten darüber erneut verarbeiten. Aus dem Cache wird ein fertiges, kompiliertes Bild abgerufen und wir stellen in einem Bruchteil einer Sekunde alle zuvor erhaltenen Informationen wieder her. So spart das Gehirn viel Zeit und Energie, indem es stabile Szenarien (Skripte) erstellt, während der Hauptprozessor für komplexere und neue Aufgaben entlastet wird. 

Methoden zum Caching von Daten

Es gibt verschiedene Caching-Methoden, die davon abhängen, was und wie genau gecacht wird, wo die Ergebnisse gespeichert werden. 

Browser-Caching (auf der Client-Seite)

  • Bilder und Dateien, 
  • HTTPS-Protokoll, 
  • Webseiten (komplett oder Teile davon).

Server-Caching

  • PHP-Code, 
  • Anfragen an die Datenbank und Serverantworten.

Caching als Methode zur Datenverarbeitung existiert seit den 1960er Jahren, daher sind nicht alle bekannten Methoden aktuell. Es gibt viele veraltete — einige sind in Vergessenheit geraten, andere werden immer noch verwendet. 

Dienste für Server-Caching

Heute werden wir Ihnen drei moderne und effektive Methoden des Server-Cachings vorstellen — OPCache, Memcached und Redis.

OPCache

OPCache wurde speziell für PHP entwickelt. Um zu verstehen, wie es funktioniert, lassen Sie uns zunächst den Prozess der Arbeit von PHP-Skripten mit Client-Anfragen analysieren. Das System sucht nach Dateien, öffnet sie, kompiliert die Antwort und gibt sie an den Benutzer zurück. Dabei werden Opcodes (kompilierte Skripte) erstellt und nach der Ausführung sofort zerstört. 

OPCache ermöglicht es, diese Skripte im Speicher zu speichern, wodurch die Arbeit der Website um ein Vielfaches beschleunigt wird. Der Prozess der Erstellung von Opcodes ist ziemlich ressourcenintensiv, daher ermöglicht das Speichern von Skripten im Cache eine erhebliche Entlastung des Servers. 

Memcached

Memcached — ist eine Software, die auf Hash-Tabellen basiert. Der Dienst hat einen offenen Quellcode und unterstützt alle gängigen Programmiersprachen. Die Technologie ermöglicht es, Informationen im Format "Schlüssel-Wert" zu speichern und wird hauptsächlich für das Caching von Sitzungen verwendet, kann aber auch für andere Daten verwendet werden — beispielsweise kleine Abschnitte des HTML-Codes einer Seite. 

Caching sieht folgendermaßen aus: Zunächst gelangt die Anfrage des Clients in den Speicher von Memcached und sucht dort nach einer fertigen Kompilierung. Wenn diese nicht vorhanden ist — wird die Anfrage an den Server weitergeleitet, eine Seite wird erstellt, das Ergebnis wird an den Benutzer gesendet und sofort im Arbeitsspeicher mit Hilfe des Memcached-Dienstes gespeichert. Bei nachfolgenden ähnlichen Sitzungen wird das Ergebnis sofort aus dem Cache bereitgestellt, der Prozess wird die Hauptlaufwerke nicht betreffen. Dadurch wird die Antwortzeit auf Millisekunden verkürzt und die Serverressourcen erheblich entlastet. Dies trägt zu einer schnellen Ladezeit der Websites bei.

Eine der Eigenschaften von Memcached — es benötigt sehr wenig Platz und verbraucht minimale Ressourcen. Es gibt keine Datentypen, nur Zeichenfolgen mit Schlüsseln. Dadurch spart Memcached Speicher.

Der Dienst speichert Daten nur im Arbeitsspeicher und sichert sie nicht beim Neustart des Systems. Wenn der Speicher nicht ausreicht, beginnt er, neue Daten über alte zu schreiben. 

Memcached ist mehrthreadig und lässt sich gut vertikal skalieren, indem man den Speicher und die Anzahl der Kerne erhöht. Diese Methode hat Einschränkungen, da sie innerhalb eines Servers implementiert wird und eine Obergrenze hat. 

Redis

Redis — ist ein Datenbankverwaltungssystem, das im Prinzip wie Memcached funktioniert und ebenfalls nach dem Prinzip "Schlüssel-Wert" arbeitet, beide Ressourcen eignen sich für Websites mit vielen Datenbankanfragen. Aber es hat viel breitere Funktionalitäten, daher wird der Dienst nicht nur für das Caching verwendet. 

Was kann Redis:

  • Caching von Benutzersitzungen, Zwischendaten, Abschnitten von HTML-Seiten;

  • Glatte Sitzungsblockierungen auf PHP, damit die Website für alle Benutzer gleichmäßig lädt, nicht nacheinander;

  • Wird als DBMS für kleine Plattformen verwendet;

  • Funktioniert als Nachrichtenbroker;

  • Caching von PHP-Code.

Wenn wir über die Unterschiede zwischen Memcached und Redis sprechen, hat Redis Datentypen; es speichert nicht nur Informationen im Arbeitsspeicher, sondern sendet sie auch regelmäßig auf die Festplatte. 

Redis ist einthreadig und lässt sich gut horizontal skalieren, indem zusätzliche Server angeschlossen werden. Dadurch kann das Scaling praktisch unbegrenzt durchgeführt werden — solange man Geld hat, neue Hardware zu kaufen. 

Angebote von Cityhost. Welche Methode sollte der Kunde wählen? 

Cityhost bietet alle drei Dienste im Rahmen der Nutzung von Hosting an. Die Erweiterungen sind im Control Panel des Hostings im Abschnitt "Zusätzliche Dienste" verfügbar.

Für Kunden stehen 16 MB Arbeitsspeicher für OPCache kostenlos zur Verfügung. Memcached kostet 10 Kopeken pro Tag Nutzung des Dienstes, und Redis — 53 Kopeken (das minimale Volumen an Arbeitsspeicher, das bestellt werden kann, beträgt — 32 MB).

Alle Dienste und Anleitungen zu deren Installation finden Sie hier.

OPCache, Memcached und Redis werden für stark belastete Projekte mit vielen Besuchern auf der Website und häufigen Datenbankanfragen verwendet. Welche von ihnen sollte man auf seinem Hosting installieren? 

OPCache — ein minimalistischer und effizienter Dienst, der für alle Projekte geeignet ist, die PHP als Backend-Sprache verwenden. Es kann zusammen mit anderen genannten Anwendungen für das Caching installiert werden. 

Da Memcached und Redis ziemlich ähnlich sind, entsteht oft die Dilemma-Wahl zwischen ihnen. 

Normalerweise wird die Entscheidung zugunsten von Redis getroffen, da es neuer ist, über mehr Funktionalitäten verfügt und mehr Aufgaben lösen kann, sich durch Erweiterung der Serverbasis skalieren lässt. Diese Option wird von großen Projekten oder solchen mit Aussicht auf schnelles Wachstum genutzt. 

Aber Memcached löst die Caching-Aufgaben nicht schlechter und hat seine eigenen Vorteile — es ist ressourcensparend, geeignet für kompakte Projekte, nimmt nicht viel Platz ein und lässt sich innerhalb eines Servers skalieren. 

Es stellt sich die logische Frage: Wenn diese Technologien die Arbeit so beschleunigen, wäre es dann nicht besser, alle drei Erweiterungen auf seinem Hosting zu installieren — dann würde die Website wahrscheinlich wie eine Rakete fliegen? Nicht ganz. Effektiv arbeiten die Kombinationen OPCache+Redis und OPCache+Memcached, da jede Komponente der Kombination ihre eigenen Aufgaben erfüllt. 

Aber Redis und Memcached sind sich ähnlich und können bei paralleler Aktivierung Konflikte verursachen. Man kann natürlich beide Dienste gut konfigurieren, damit sie unterschiedliche Funktionen ausführen. Aber normalerweise wird es nicht so gemacht — einer von ihnen reicht völlig aus. Welche der beiden zu wählen ist, muss basierend auf den Bedürfnissen der Website bestimmt werden, indem man die Dienste testet. 

Also ist die Antwort einfach: Redis und Memcached können mit OPCache kombiniert werden, aber es ist nicht ratsam, alle drei Dienste zu aktivieren. 


Hat Ihnen der Artikel gefallen? Erzählen Sie Ihren Freunden davon: