Mobile-Menu

Speichertipp: Godis als experimentelle Plattform für hochparallele Key-Value-Workloads Redis-Server in Go mit Cluster-Fokus

Von Thomas Joos 2 min Lesedauer

Anbieter zum Thema

Godis implementiert einen Redis-kompatiblen Server vollständig in Go und dient als technische Referenz für nebenläufige Middleware. Der Quellcode adressiert Datenstrukturen, Persistenz und Cluster-Logik und zeigt, wie sich hohe Parallelität, Replikation und verteilte Transaktionen in einer kompakten Architektur umsetzen lassen.

Godis ist eine eigenständige Go-Implementierung eines Redis-Servers.(Bild:  Midjourney / KI-generiert)
Godis ist eine eigenständige Go-Implementierung eines Redis-Servers.
(Bild: Midjourney / KI-generiert)

Godis orientiert sich funktional an Redis und deckt zentrale Datentypen ab. Strings, Listen, Hashes, Sets, Sorted Sets, Bitmaps und GEO-Operationen stehen ebenso bereit wie TTL-Logik, Publish-Subscribe und Multi-Datenbank-Betrieb mit „SELECT“. Transaktionen arbeiten atomar und isoliert. Fehler innerhalb eines „MULTI“-Kontexts führen zum Rollback bereits ausgeführter Befehle, wodurch ein konsistenter Datenzustand erhalten bleibt.

RDB-Import und mehr

Die Persistenzschicht kombiniert RDB-Import und -Export mit AOF-Logging und AOF-Rewrite. Dadurch lassen sich Startzeiten und Datensicherheit ausbalancieren. Der Code trennt Protokollverarbeitung, Datenstrukturen und Speicherlogik strikt. Der TCP-Server nutzt eine ereignisgetriebene Implementierung auf Basis von gnet, um eine hohe Parallelität bei geringer Latenz zu erreichen. Interne Sperrmechanismen schützen Schlüssel granular und vermeiden globale Locks.

Ein zentrales Merkmal stellt der serverseitige Clusterbetrieb dar. Clients verbinden sich mit einem beliebigen Knoten und erhalten transparenten Zugriff auf den gesamten Datenbestand. Die Metadatenverwaltung basiert auf Raft. Der Cluster unterstützt dynamische Erweiterung, Rebalancing und Failover in experimenteller Ausprägung. Mehrschlüsselbefehle wie „MSET“, „MSETNX“, „DEL“, „RENAME“ und „RENAMENX“ arbeiten clusterweit atomar. Verteilte Transaktionen bleiben auf Slots begrenzt und nutzen eine Try-Commit-Catch-Logik zur Koordination.

Konfiguration durchführen

Die Konfiguration erfolgt über externe Dateien, deren Pfad per Umgebungsvariable gesetzt wird. Ohne gesetzte Variable greift Godis auf eine lokale redis.conf zurück. Beispielkonfigurationen für den Mehrknotenbetrieb liegen dem Projekt bei und zeigen die Initialisierung eines Clusters mit mehreren Instanzen. Der Server lauscht standardmäßig auf Port 6399 und akzeptiert Verbindungen über redis-cli oder kompatible Clients.

Benchmark-Ergebnisse auf moderner ARM-Hardware zeigen hohe Durchsatzraten bei Basisoperationen wie „GET“, „SET“, „INCR“ oder „PUSH“ und stabile Latenzen im niedrigen Millisekundenbereich. Umfangreiche „LRANGE“-Abfragen skalieren erwartungsgemäß mit der Elementanzahl. Die Messwerte verdeutlichen den Fokus auf Parallelität und Netzwerkpfad, weniger auf vollständige Funktionsparität mit Redis.

Der Quellcode eignet sich zur Analyse interner Abläufe. Die Struktur trennt Einstiegspunkt, Konfigurationsparser, Protokollverarbeitung, Datenstrukturen und Clusterlogik. Module für AOF, PubSub, Replikation und verteilte Transaktionen bleiben klar abgegrenzt. Godis positioniert sich damit nicht als produktiver Ersatz für Redis, sondern als nachvollziehbare Implementierung für Entwickler, die verteilte Key-Value-Systeme in Go verstehen und erweitern wollen.

Aktuelles eBook

Storage-Software als Effizienzbooster

eBook Storage-Software als Effizienzbooster
eBook „Storage-Software als Effizienzbooster“
(Bild: Storage-Insider)

Mit der geeigneten Storage-Software kann sich ein Unternehmen einen Effizienzbooster ins Haus holen oder in der Cloud abonnieren. Dieser Booster steigert nicht nur die Performance der geschäftskritischen Anwendungen, sondern optimiert auch die Kosten der bereits installierten Speichersysteme.

Die Themen im Überblick:

  • Herausforderungen eines modernen Speichersystems
  • Methoden und Technologien effizienter Speichersysteme
  • Effizienter Speicher mit Pure Storage, AWS, Cohesity und Dell

(ID:50684972)

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Data-Storage und -Management

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung