Memcached konfigurieren: Wann es besser als Redis ist

Memcached ist ein schneller, In-Memory Key-Value-Store, der sich hervorragend für Web-Anwendungen eignet, wenn es um reines Caching von Daten ohne Persistenz geht. Im Gegensatz zu Redis bietet Memcached eine schlankere Architektur, die besonders bei hohen Zugriffszahlen und verteilten Umgebungen Vorteile bietet. In diesem Leitfaden erfahren Einsteiger, IT-Studierende und Junior Network Engineers, wie Memcached installiert, konfiguriert und optimal eingesetzt wird, sowie wann es Redis überlegen sein kann.

Voraussetzungen

  • Linux-Server (Ubuntu/Debian oder CentOS/RHEL)
  • Root- oder Sudo-Rechte
  • Webanwendungen, die Key-Value-Caching unterstützen
  • Grundkenntnisse in Terminal und Texteditoren
  • Optional: Firewall und Netzwerkplanung für Multi-Server-Umgebungen

Memcached Installation

Memcached kann über die Paketmanager der gängigen Distributionen installiert werden.

# Ubuntu/Debian
sudo apt update
sudo apt install memcached libmemcached-tools

# CentOS/RHEL
sudo yum install memcached libmemcached

# Dienst starten und aktivieren
sudo systemctl start memcached
sudo systemctl enable memcached
sudo systemctl status memcached

Grundkonfiguration

Die Konfigurationsdatei befindet sich typischerweise unter /etc/memcached.conf oder /etc/sysconfig/memcached. Wichtige Parameter:

-m 256               # Maximale RAM-Nutzung 256MB
-p 11211              # Standard-Port
-l 127.0.0.1          # Bind-Adresse (nur localhost für Sicherheit)
-u memcached          # Benutzer, unter dem der Dienst läuft
-c 1024               # Maximale Anzahl gleichzeitiger Verbindungen

Nach Änderungen Dienst neu starten:

sudo systemctl restart memcached
sudo systemctl status memcached

Memcached nutzen

Memcached speichert einfache Schlüssel-Wert-Paare, ideal für Session-Daten oder Cache von häufigen Abfragen.

# Beispiel: Key setzen mit Ablaufzeit (TTL)
echo "set mykey 0 3600 11rnHello Worldr" | nc 127.0.0.1 11211

# Key auslesen
echo "get mykeyr" | nc 127.0.0.1 11211

# Key löschen
echo "delete mykeyr" | nc 127.0.0.1 11211

Integration in Webanwendungen

  • PHP: memcached oder memcache Extension
  • Python: pymemcache oder python-memcached
  • Node.js: memjs oder memcached Module
  • Java: spymemcached oder xmemcached

PHP Beispiel

$mem = new Memcached();
$mem->addServer('127.0.0.1', 11211);
$mem->set('session_key', 'value', 3600);
$value = $mem->get('session_key');

Unterschiede zwischen Memcached und Redis

  • Memcached ist rein in-memory, keine Persistenz; Redis kann Daten dauerhaft speichern
  • Memcached unterstützt einfache Key-Value-Paare; Redis bietet komplexe Datentypen (Listen, Sets, Hashes)
  • Memcached skaliert horizontal leicht über mehrere Server, Redis kann Cluster bilden
  • Memcached benötigt weniger Ressourcen und ist einfacher zu konfigurieren
  • Redis bietet erweiterte Features wie Pub/Sub, Lua-Scripting und Transaktionen

Netzwerk- und Subnetzplanung

In Multi-Server- oder Cluster-Umgebungen sollte Memcached auf dedizierten IPs laufen und die Subnetze sauber geplant sein.

IPv4 Subnetz

<math>
Memcached-IP = 192.168.300.10/24
Subnetzadresse = 192.168.300.10 & 255.255.255.0 = 192.168.300.0
Broadcastadresse = 192.168.300.0 | ~255.255.255.0 = 192.168.300.255
</math>

IPv6 Subnetz

<math>
Memcached-IP = 2001:db8:abcd:300::10/64
Subnetzadresse = 2001:db8:abcd:300:: & ffff:ffff:ffff:ffff:: = 2001:db8:abcd:300::0
Broadcastadresse = 2001:db8:abcd:300:ffff:ffff:ffff:ffff
</math>

Best Practices

  • Memcached nur im internen Netzwerk verfügbar machen (Bind auf localhost oder internes Subnetz)
  • Maximale RAM-Nutzung definieren und Speicherüberwachung aktivieren
  • Schlüssel-Lebensdauer (TTL) für Cache-Einträge setzen
  • Regelmäßiges Monitoring mit memcached-tool oder stats Befehl
  • Separate Benutzer für den Dienst verwenden
  • Backups von Redis-Daten sind bei Memcached nicht nötig, da keine Persistenz
  • Horizontal skalieren über mehrere Memcached-Instanzen für hohe Last
  • Firewalls und IP-Filterung konfigurieren, um unbefugten Zugriff zu verhindern
  • Updates regelmäßig durchführen
  • Logging aktivieren und überwachen

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles