Memcached ist ein kostenloses, verteiltes In-Memory-Caching-System, das häufig genutzte Daten und Objekte – wie Datenbankabfragen, API-Antworten, Sitzungsinformationen oder Berechnungsergebnisse – im Arbeitsspeicher speichert. Dadurch werden wiederholte Vorgänge wie Datenbankabfragen reduziert, was die Anwendungsleistung verbessert und die Serverlast verringert.
Diese Anleitung erklärt, wie Sie Memcached auf Ubuntu 20.04 installieren und so konfigurieren, dass SASL (Simple Authentication and Security Layer) für sichere Client-Verbindungen verwendet wird.
Voraussetzungen
- Ein Ubuntu-20.04-Server
- SSH-Zugang als Nicht-Root-Benutzer mit sudo-Rechten
- Sicherstellen, dass der Server aktualisiert ist
Passende Infrastruktur bei centron
Ubuntu-Server ohne eigene Hardware: ccloud³ VMs mit vollem Root-Zugriff ab 3,12 € im Monat, stundengenau abgerechnet und in Sekunden bereit. Cloud Server mieten →
Memcached installieren
Memcached ist in den Standard-Paketquellen von Ubuntu 20.04 enthalten und kann mit APT installiert werden. Alternativ lässt sich auch eine bestimmte Version aus dem Quellcode kompilieren. Die folgenden Schritte beschreiben die Installation von Memcached und wie Sie es so einrichten, dass es automatisch beim Serverstart ausgeführt wird.
Paketindex aktualisieren
$ sudo apt updateMemcached und erforderliche Tools installieren
$ sudo apt install memcached libmemcached-tools -yInstallierte Memcached-Version prüfen
$ memcached --versionBeispielausgabe:
memcached 1.5.22Memcached für automatischen Start aktivieren
$ sudo systemctl enable memcachedMemcached-Dienst starten
$ sudo systemctl start memcachedMemcached konfigurieren
Die Konfigurationsdatei für Memcached befindet sich unter /etc/memcached.conf. Dort können Sie Optionen wie Portnummer, Speichergröße, Verbindungsbegrenzungen und die IP-Adresse, auf der Memcached lauscht, anpassen. Führen Sie die folgenden Schritte aus, um die Einstellungen zu ändern und sicherzustellen, dass Memcached korrekt läuft.
Konfigurationsdatei bearbeiten
$ sudo nano /etc/memcached.confSASL-Authentifizierung aktivieren
Fügen Sie -S am Ende der Datei nach -P /var/run/memcached/memcached.pid ein, um SASL zu aktivieren:
...
-P /var/run/memcached/memcached.pid
-SAusführliche Protokollierung aktivieren
-vGleichzeitige Verbindungen begrenzen
-c 1024Memcached-Port überprüfen
# Standard-Port für Verbindungen ist 11211
-p 11211Remote-Zugriff einschränken oder erlauben
Stellen Sie sicher, dass die -l-Direktive auf 127.0.0.1 gesetzt ist, um den Zugriff auf lokale Verbindungen zu beschränken. Um entfernten Zugriff zu ermöglichen, ändern Sie den Wert auf die öffentliche IP-Adresse Ihres Servers:
-l 127.0.0.1
-l ::1Konfigurationsänderungen übernehmen
$ sudo systemctl restart memcachedMemcached mit SASL absichern
Standardmäßig erzwingt Memcached keine Authentifizierung. Durch das Aktivieren von SASL wird sichergestellt, dass nur authentifizierte Benutzer Zugriff erhalten. Gehen Sie wie folgt vor, um diese Sicherheitsebene hinzuzufügen.
SASL-Paket installieren
$ sudo apt install sasl2-bin -yVerzeichnis für SASL-Anmeldedaten erstellen
$ sudo mkdir /etc/sasl2SASL-Konfigurationsdatei erstellen
$ sudo nano /etc/sasl2/memcached.confFügen Sie den folgenden Inhalt ein:
log_level: 5
mech_list: plain
sasldb_path: /etc/sasl2/memcached-sasldb2Diese Konfiguration:
- log_level: Aktiviert detailliertes Logging auf Stufe 5.
- mech_list: Gibt die Authentifizierungsmethode an;
plainermöglicht einfache Benutzername-Passwort-Authentifizierung. - sasldb_path: Definiert den Speicherort der Memcached-SASL-Datenbank für die Authentifizierung.
SASL-Benutzer erstellen
Ersetzen Sie example-user durch den gewünschten Benutzernamen:
$ sudo saslpasswd2 -a memcached -c -f /etc/sasl2/memcached-sasldb2 example-userVergeben Sie ein starkes Passwort, wenn Sie dazu aufgefordert werden.
Eigentümerrechte für die SASL-Datenbank setzen
$ sudo chown memcache:memcache /etc/sasl2/memcached-sasldb2Memcached neu starten, um Änderungen zu übernehmen
$ sudo systemctl restart memcachedStatus des Memcached-Dienstes prüfen
$ sudo systemctl status memcachedAlle SASL-Benutzer auflisten
$ sudo sasldblistusers2 -f /etc/sasl2/memcached-sasldb2Beispielausgabe:
example-user@ubuntu20: userPasswordNeue Benutzeranmeldedaten testen
Ersetzen Sie example-user@ubuntu20 und strong-password durch Ihre tatsächlichen Daten:
$ memcstat --binary --servers="127.0.0.1" --username='example-user@ubuntu20' --password=strong-passwordWenn die Konfiguration korrekt ist, sollte eine Ausgabe ähnlich der folgenden erscheinen:
Server: 127.0.0.1 (11211)
pid: 5090
uptime: 570
time: 1743878810
version: 1.5.22
libevent: 2.1.11-stable
pointer_size: 64
rusage_user: 0.052240
rusage_system: 0.043533
max_connections: 1024
curr_connections: 2
total_connections: 10
rejected_connections: 8Verbindung zu Memcached herstellen
Memcached funktioniert mit vielen Anwendungs-Frameworks wie PHP, Perl, Python, Ruby und Java. Um die Verbindung mit PHP zu testen, gehen Sie wie folgt vor.
PHP und Memcached-Modul installieren
$ sudo apt install php php-memcached -yBeispiel-PHP-Skript erstellen
$ nano memcached.phpFügen Sie folgenden PHP-Code ein. Ersetzen Sie example-user@ubuntu20 und strong-password durch Ihre Zugangsdaten:
<!--?php $memcached = new Memcached(); $memcached--->setOption(Memcached::OPT_BINARY_PROTOCOL, true);
$memcached->addServer('127.0.0.1', 11211);
$memcached->setSaslAuthData('example-user@ubuntu20', 'strong-password');
// Wert setzen und abrufen, um die Verbindung zu testen
$memcached->set('example', 'Greetings from centron!');
echo $memcached->get('example');
?>Dieses Skript verbindet sich mit Memcached unter Verwendung der angegebenen Benutzerdaten und des Binärprotokolls. Es legt einen neuen Schlüssel example mit dem Wert „Greetings from centron!“ an und ruft diesen anschließend aus dem Speicher ab.
PHP-Skript ausführen
$ php memcached.phpBeispielausgabe:
Greetings from centron!Die Ausgabe bestätigt, dass das PHP-Skript erfolgreich eine Verbindung zu Memcached hergestellt, den Schlüssel example gespeichert und den Wert „Greetings from centron!“ abgerufen hat.
Fazit
Sie haben Memcached auf Ubuntu 20.04 installiert und so konfiguriert, dass es sicher mit Anwendungs-Frameworks wie PHP zusammenarbeitet. Durch das Zwischenspeichern häufig genutzter Daten wie Datenbankabfragen im Arbeitsspeicher trägt Memcached dazu bei, die Serverleistung zu verbessern und die Last zu reduzieren.
Testen Sie Ihr Setup auf ccloud³
Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.