So installierst du Memcached unter Ubuntu 22.04

Memcached ist ein freies, quelloffenes und universell einsetzbares verteiltes Speicher-Caching-System, das zum Zwischenspeichern von Datenbankdaten verwendet wird. Es ist ein leistungsstarkes Speicher-Caching-System, das dynamische Webanwendungen beschleunigt, indem es die Datenbanklast reduziert. Memcached besteht aus vier Komponenten, die es dem Client und dem Server ermöglichen, zusammenzuarbeiten, um zwischengespeicherte Daten so effizient wie möglich bereitzustellen. Es bietet eine API-Integration für alle wichtigen Sprachen wie PHP, Java, C/C++, Python, Ruby, Perl, etc.

In diesem Tutorial erfährst du, wie du Memcached auf einem Ubuntu 22.04 Server installierst und wie du es mit PHP nutzen kannst.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 22.04 läuft.
  • Ein Root-Passwort ist auf deinem Server eingerichtet.

Installiere Memcached auf Ubuntu 22.04

Standardmäßig ist das Memcached-Paket im Ubuntu-Standard-Repository enthalten. Du kannst es ganz einfach mit dem folgenden Befehl installieren:

apt install memcached libmemcached-tools -y

Sobald Memcached installiert ist, starte den Memcached-Dienst mit dem folgenden Befehl:

systemctl start memcached

Du kannst den Status von Memcached mit dem folgenden Befehl überprüfen:

systemctl status memcached

Du solltest die folgende Ausgabe erhalten:

? memcached.service - memcached daemon
     Loaded: loaded (/lib/systemd/system/memcached.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-10-18 13:09:47 UTC; 29s ago
       Docs: man:memcached(1)
   Main PID: 5525 (memcached)
      Tasks: 10 (limit: 2242)
     Memory: 1.7M
        CPU: 71ms
     CGroup: /system.slice/memcached.service
             ??5525 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid

Oct 18 13:09:47 ubuntu2204 systemd[1]: Started memcached daemon.

Um die Memcached-Version zu überprüfen, führe den folgenden Befehl aus:

memcached -V

Du erhältst die folgende Ausgabe:

memcached 1.6.14

Standardmäßig lauscht Memcached auf Port 11211. Du kannst dies mit dem folgenden Befehl überprüfen:

ss -plunt | grep memcache

Du solltest die folgende Ausgabe sehen:

tcp   LISTEN 0      1024                        127.0.0.1:11211      0.0.0.0:*    users:(("memcached",pid=5525,fd=22)) 

PHP Memcached-Erweiterung installieren

Um Memcached mit PHP-basierten Anwendungen nutzen zu können. Du musst die PHP Memcached-Erweiterung auf deinem Server installieren. Du kannst sie mit folgendem Befehl auf dem Apache installieren:

apt install apache2 php libapache2-mod-php php-memcached php-cli -y

Als Nächstes erstellst du eine PHP-Testseite, um den Memcached zu testen:

nano /var/www/html/info.php

Füge den folgenden Code ein:

<?php
phpinfo();

Speichere und schließe die Datei und starte den Apache-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart apache2

Öffne dann deinen Webbrowser und rufe die PHP-Seite über die URL http://your-server-ip/info.php auf . Auf dem folgenden Bildschirm solltest du den Memcached sehen:

PHP Memcached

Als Nächstes erstellst du eine weitere PHP-Testseite, um zu überprüfen, ob der Memcached funktioniert oder nicht.

nano /var/www/html/test.php

Füge den folgenden Code ein:

<?php

try

{
$memcached = new Memcached();
$memcached->addServer("127.0.0.1", 11211); 
$response = $memcached->get("key_cache");

if($response==true) 
{
echo "Result coming from caching";
echo $response;
}

else

{
echo "Cache is not created yet, reload again to see changes";
$memcached->set("key_cache", "Hooray! Memcache is working now ...") ;
}
}
catch (exception $e)
{
echo $e->getMessage();
}
?>

Speichere und schließe die Datei, öffne dann deinen Webbrowser und rufe die PHP-Testseite mit der URL http://your-server-ip/test.php auf . Du solltest den folgenden Bildschirm sehen:

PHP Memcached Test

Als Nächstes lädst du die Seite noch einmal. Diesmal wird die Seite aus dem Cache-Speicher geladen, wie unten gezeigt:

PHP-Ergebnis von memcahed

Memcached mit Authentifizierung sichern

Es wird empfohlen, Simple Authentication and Security Layer (SASL) zu verwenden, um den Memcached mit einer benutzerbasierten Authentifizierung zu sichern. Dazu musst du das Paket sasl2-bin auf deinem Server installieren.

apt install sasl2-bin

Als nächstes erstellst du ein Verzeichnis und eine Konfigurationsdatei für die SASL-Authentifizierung:

mkdir -p /etc/sasl2
nano /etc/sasl2/memcached.conf

Füge die folgenden Zeilen ein:

log_level: 5
mech_list: plain
sasldb_path: /etc/sasl2/memcached-sasldb2

Speichere und schließe die Datei und erstelle dann eine SASL-Datenbank mit Benutzeranmeldeinformationen:

saslpasswd2 -a memcached -c -f /etc/sasl2/memcached-sasldb2 user1

Lege dein Passwort wie unten gezeigt fest:

Password: 
Again (for verification): 

Als Nächstes änderst du die Eigentümerschaft der Memcached-Datenbank:

chown memcache:memcache /etc/sasl2/memcached-sasldb2

Als Nächstes überprüfst du Memcached mit dem folgenden Befehl:

memcstat --servers="127.0.0.1"

Du solltest die folgende Ausgabe erhalten:

Server: 127.0.0.1 (11211)
	 pid: 5525
	 uptime: 462
	 time: 1666099048
	 version: 1.6.14
	 libevent: 2.1.12-stable
	 pointer_size: 64
	 rusage_user: 0.110123
	 rusage_system: 0.093906
	 max_connections: 1024
	 curr_connections: 1
	 total_connections: 4
	 rejected_connections: 0
	 connection_structures: 2
	 response_obj_oom: 0
	 response_obj_count: 1
	 response_obj_bytes: 49152
	 read_buf_count: 6
	 read_buf_bytes: 98304
	 read_buf_bytes_free: 32768
	 read_buf_oom: 0
	 reserved_fds: 20
	 cmd_get: 2
	 cmd_set: 1
	 cmd_flush: 0
	 cmd_touch: 0
	 cmd_meta: 0
	 get_hits: 1
	 get_misses: 1
	 get_expired: 0
	 get_flushed: 0
	 delete_misses: 0

Als Nächstes bearbeitest du die Konfigurationsdatei von Memcached:

nano /etc/memcached.conf

Füge die folgenden Zeilen hinzu:

-S
-vv

Speichere und schließe die Datei und starte den Memcached-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart memcached

Als Nächstes überprüfst du die SASL-Unterstützung mit dem folgenden Befehl:

journalctl -u memcached |grep SASL

Wenn alles in Ordnung ist, erhältst du die folgende Ausgabe:

Journal file /var/log/journal/d97e195db6584d63aeedfdc35dc83c7f/user-1000.journal is truncated, ignoring file.
Oct 18 13:18:19 ubuntu2204 systemd-memcached-wrapper[14980]: Initialized SASL.

Überprüfe Memcached-Authentifizierung

Versuche zunächst, die Verbindung zu Memcached erneut ohne Authentifizierung zu überprüfen:

memcstat --servers="127.0.0.1"

Der Befehl sollte keine Ausgabe erzeugen. Gib den folgenden Shell-Befehl ein, um den Status zu überprüfen:

echo $?

Du solltest den folgenden Statuscode erhalten: Der Befehl memcstat ist fehlgeschlagen.

1

Als nächstes führst du den Memcached-Befehl erneut aus, indem du den Benutzernamen und das Passwort angibst:

memcstat --servers="127.0.0.1" --username=user1 --password=password

Du erhältst die folgende Ausgabe:

Server: 127.0.0.1 (11211)
	 pid: 14980
	 uptime: 46
	 time: 1666099143
	 version: 1.6.14
	 libevent: 2.1.12-stable
	 pointer_size: 64
	 rusage_user: 0.077843
	 rusage_system: 0.049072
	 max_connections: 1024
	 curr_connections: 1
	 total_connections: 3
	 rejected_connections: 0
	 connection_structures: 2
	 response_obj_oom: 0
	 response_obj_count: 1
	 response_obj_bytes: 16384
	 read_buf_count: 3
	 read_buf_bytes: 49152
	 read_buf_bytes_free: 16384
	 read_buf_oom: 0

Memcached für Python installieren

Wenn du Memcached in Python-basierte Webanwendungen integrieren willst, musst du die Memcached-Erweiterung für Python installieren. Du kannst sie mit dem folgenden Befehl installieren:

apt install python3-pip
pip install pymemcache
pip install python-memcached

Fazit

In diesem Beitrag haben wir erklärt, wie du den Memcached-Server auf Ubuntu 22.04 installierst. Außerdem haben wir erklärt, wie du Memcached mit SASL-basierter Authentifizierung absicherst. Ich hoffe, du kannst Memcached jetzt in deine Anwendung integrieren, um die Leistung deiner Anwendung zu verbessern. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.

Das könnte dich auch interessieren …