Mit Redis kann man nicht nur Daten speichern und abrufen, sondern auch nützliche Funktionen und Trigger implementieren, um komplexere Aktionen auszuführen. In diesem Blogbeitrag stelle ich vor, wie man dies erreichen kann.
Ping Pong mit Redis
Jeder, der Programmierung kennt, ist sicherlich mit dem klassischen „Ping Pong“ vertraut. Hier ein einfaches Beispiel, wie man es mit Redis implementieren kann:
#!js name=play api_version=1.0
function ping(client, data) {
return client.call("ping");
}
redis.registerFunction("ping", ping);
Sie fragen sich vielleicht, wie man diese Funktion in Redis importiert? Ganz einfach! Mit der Redis CLI kann die Datei wie folgt geladen werden:
redis-cli -x TFUNCTION LOAD < ./play.js
Sobald sie importiert ist, kann man die Funktion über die Redis CLI wie folgt ausführen:
redis-cli TFCALL play.ping 0
Ereignisse automatisieren mit Redis Triggern
Aber warten Sie, es gibt noch mehr! Mit Redis können Sie jetzt auch Trigger hinterlegen. Diese sind besonders nützlich, um Ereignisse automatisch bei bestimmten Aktionen, wie beispielsweise Anpassungen an einem Key, auszulösen. Hier ein Beispiel, wie man einen Trigger setzt, der das Feld last_update
mit einem Zeitstempel aktualisiert, wenn ein Hash mit dem Prefix shop:
erstellt oder bearbeitet wird:
#!js name=trigger api_version=1.0
function setLastUpdate(client, data) {
if(data.event == "hset") {
const time = new Date();
client.call("hset", data.key, "last_update", time.toISOString());
}
}
redis.registerKeySpaceTrigger("addLastUpdated", "shop:", setLastUpdate);
Und ja, der Importprozess für den Trigger ist genauso einfach wie bei der Funktion:
redis-cli -x TFUNCTION LOAD < ./trigger.js
Abschließende Gedanken
Die Einführung von Funktionen und Triggern in Redis zeigt, wie vielseitig und mächtig diese Datenbank ist. Dies sind nur einige der spannenden Neuerungen, die mit Version 8.0 eingeführt werden sollen. Für tiefere Einblicke und weitere Informationen zu diesem Thema empfehle ich diesen Artikel.
Verpassen Sie also nicht die Gelegenheit, mit Redis Ihre Datenbankinteraktionen auf das nächste Level zu heben, es wird Ihnen leicht gemacht!