Memcached

Benutzerfreundlicher verteilter In-Memory-Schlüssel-Wert-Speicher, der als leistungsstarker Cache oder Sitzungsspeicher eingesetzt wird.

Was ist Memcached?

Bei Memcached handelt es sich um einen benutzerfreundlichen und leistungsstarken In-Memory-Datenspeicher. Es stellt eine ausgereifte, skalierbare Open-Source-Lösung mit Reaktionszeiten unterhalb des Millisekundenbereichs dar. Daher eignet es sich hervorragend als Cache oder Sitzungsspeicher. Memcached ist eine beliebte Wahl für die Unterstützung von Echtzeitanwendungen in den Bereichen Web, Mobile Apps, Gaming, Werbung und E-Commerce.

Was ist Memcached?

Wie funktioniert Memcached?

Im Gegensatz zu Datenbanken, bei denen Daten auf der Festplatte oder auf SSDs gespeichert werden, behält Memcached seine Daten im Speicher. Durch den Wegfall eines erforderlichen Zugriffs auf Platten bzw. Datenträger treten bei In-Memory-Schlüssel-Wert-Speichern wie Memcached keine Verzögerungen aufgrund von Suchzeiten auf. Die Daten sind innerhalb von Mikrosekunden zugänglich. Darüber hinaus ist Memcached ein verteilter Speicher und kann daher schnell durch das Hinzufügen neuer Knoten erweitert werden. Und da bei Memcached das Multi-Thread-Verfahren genutzt wird, können Sie die Rechenkapazität ohne großen Aufwand nach oben skalieren. Aufgrund seiner Geschwindigkeit und Skalierbarkeit sowie seines einfachen Designs, effizienten Speichermanagements und seiner API-Unterstützung für die meisten gängigen Sprachen ist Memcached die ideale Wahl für Einsatzbereiche, die einen leistungsstarken und groß angelegten Cache erfordern.

Vorteile von Memcached

Memcached behält all seine Daten im Hauptspeicher des Servers. Im Gegensatz zu Datenbanken wie PostgreSQL, Cassandra und MongoDB, bei denen der Großteil der Daten auf der Festplatte oder auf SSDs gespeichert wird, müssen In-Memory-Datenspeicher nicht wiederholt auf Platten bzw. Datenträger zugreifen. Dadurch können Sie mit mehr Operationen und kürzeren Reaktionszeiten Anforderungen jeglicher Größenordnung bewältigen. Das Ergebnis: unglaubliche Geschwindigkeit mit durchschnittlichen Lese- und Schreibzeiten unterhalb des Millisekundenbereichs und Unterstützung für Millionen von Operationen pro Sekunde.

Dank seines unkomplizierten und generischen Designs bietet sich Memcached als leistungsstarke und gleichzeitig benutzerfreundliche Lösung für die Anwendungsentwicklung an. Den Memcached-Entwicklern stehen zahlreiche Open-Source-Clients zur Verfügung. Zu den unterstützten Sprachen gehören Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, Go und viele andere.

Durch seine verteilte Architektur mit Multi-Thread-Verfahren lässt sich Memcached einfach skalieren. Sie können Ihre Daten auf mehrere Knoten aufteilen und die Kapazität erweitern, indem Sie Ihrem Cluster neue Knoten hinzufügen. Da bei Memcached zudem das Multi-Thread-Verfahren zum Einsatz kommt, können mehrere Kerne auf einem bestimmten Knoten verwendet werden. So lässt sich die Rechenkapazität ganz einfach vergrößern. Mit Memcached können Sie hochgradig skalierbare verteilte Caching-Lösungen erstellen, die auf hohe Geschwindigkeit und konstante Leistung ausgelegt sind.

Memcached ist ein ausgereiftes Open-Source-Projekt, das von einer dynamischen Community gefördert wird. Anwendungen wie WordPress und Django unterstützen die Verwendung von Memcached zur Leistungssteigerung. Mit Memcached bestehen keine Abhängigkeiten von Anbietern oder Technologie, da der Datenspeicher auf offenen Standards beruht, offene Datenformate unterstützt und über zahlreiche Clients verfügt.

Anwendungsfälle

Caching

Memcached ist eine hervorragende Wahl für die Implementierung eines leistungsstarken In-Memory-Cache zur Verkürzung der Latenzzeit beim Datenzugriff, Erhöhung des Durchsatzes und Entlastung Ihrer Back-End-Systeme. Memcached kann zwischengespeicherte Elemente in weniger als einer Millisekunde bereitstellen und ermöglicht Ihnen eine einfache und kostengünstige Skalierung, falls höhere Workloads zu bewältigen sind. Memcached ist besonders beliebt beim Caching von Ergebnissen einer Datenbankabfrage sowie beim Caching von Sitzungen, Webseiten, APIs und Objekten wie Bildern, Dateien und Metadaten.

Sitzungsspeicher

Memcached wird in seiner Funktion als In-Memory-Datenspeicher gerne von Anwendungsentwicklern eingesetzt, um Sitzungsdaten für Anwendungen auf Internetebene zu speichern und zu verwalten, wenn die Persistenz eine eher untergeordnete Rolle spielt. Memcached wurde konzipiert, um eine Latenzzeit unterhalb des Millisekundenbereichs und eine Skalierung in der Größenordnung bereitzustellen, die für die Verwaltung von Sitzungsdaten wie Benutzerprofilen, Anmeldeinformationen und Sitzungsstatus erforderlich ist.

Unterstützung von Sprachen

Memcached unterstützt die meisten führenden Programmiersprachen und -protokolle, einschließlich:

Python

Java

PHP

C/C#/C++

Perl

Go

Ruby

JavaScript

Node.js

ASCII-Protokoll

Binärprotokoll

TCP- und UDP-Protokolle

Redis vs. Memcached

Redis und Memcached sind die beiden beliebtesten hauptspeicherbasierten Key-Value-Datastores. Memcached ist auf Einfachheit ausgelegt, während Redis eine umfassende Palette an Funktionen bietet, durch die es sich für eine Vielzahl von Anwendungsfällen eignet. Um entscheiden zu können, welche Lösung sich für Ihre Anforderungen besser eignet, müssen Sie die Unterschiede zwischen den beiden Engines kennen. Weitere Informationen zu Redis vs. Memcached

Vollständig verwalteter Memcached-Service auf AWS

Amazon bietet einen vollständig verwalteten Memcached-Service namens Amazon ElastiCache für Memcached an:

  • Memcached-Bereitstellungen in der Cloud können ohne großen Aufwand eingerichtet, betrieben und skaliert werden. Ausgefallene Knoten werden automatisch erkannt und ersetzt.
  • Profitieren Sie von einer kostengünstigen und individuell anpassbaren Hardwarekapazität.
  • Verwenden Sie einen Memcached-Cluster-Client von ElastiCache mit Auto-Erkennung zur Beschleunigung der Anwendungsentwicklung dank eines einfacheren Knotenmanagements.