Zum Hauptinhalt springen

Zaris: eine native Redis-Alternative für .NET

Zaris ist eine verteilte In-Memory-Datenplattform, die nativ für .NET entwickelt wurde — eine Redis-Alternative für Teams, deren Stack auf .NET basiert. Sie ist repliziert, hochverfügbar und selbst gehostet: Daten werden über mehrere Nodes partitioniert und auf einem konfigurierbaren Replikationsfaktor gehalten, sodass ein Node ausfallen kann, ohne dass Daten verloren gehen oder Ausfallzeiten entstehen. Sie betreiben Zaris unter Windows, Docker und Kubernetes und verwalten es über eine Web-Konsole, PowerShell oder direkt aus Ihrer Anwendung heraus.

Und es ist nicht nur kompatibel — es ist in vielen Bereichen schneller als Redis: messbar höherer Durchsatz auf produktiven 8-Core-Nodes (bis zu +87%), ein Durchsatz, der mit jedem Core und jedem Node skaliert, während eine einzelne Redis-Instanz flach bleibt, dazu integrierte indizierte Suche, die eine festplattenbasierte Datenbank schlägt. Auch die ehrlichen Kompromisse bleiben auf dem Tisch — die Latenz pro Operation ist gleichauf mit Redis (nicht schneller), und Redis bleibt speichersparsamer (~2,5×). Jede Performance-Zahl ist gemessen und reproduzierbar.

Warum .NET-Teams über Redis hinausblicken​

Redis ist hervorragend — ausgereift, schnell und sprachunabhängig. Für ein .NET-Team ist es jedoch eine separate Welt: eine weitere Runtime, die betrieben werden muss, Linux-zentriert, über eine Client-Bibliothek eines Drittanbieters angebunden und unter Windows nur umständlich gut zu betreiben. Zaris schließt diese Lücke, indem es Teil der .NET-Plattform selbst ist:

  • Drop-in-Caching für ASP.NET Core — Provider für IDistributedCache und HybridCache, sodass bestehender Cache-Code unverändert funktioniert.
  • Nativer .NET-Client — echte asynchrone APIs und .NET-Typen, kein Protokoll-Wrapper.
  • Erstklassige Unterstützung für Windows, Docker und Kubernetes — einschließlich eines offiziellen Helm-Charts.
  • Betreibbar — eine Web-Konsole und PowerShell-Tooling für Cluster-/Partitionszustand, Skalierung und TLS.

Zaris im Vergleich zu Redis​

DimensionRedisZaris
Plattform-PassungSprachunabhängiger C-Server, Linux-zentriertNativ in .NET; läuft dort, wo Ihre .NET-Anwendung läuft, inkl. Windows
.NET-IntegrationClient eines Drittanbieters pro AnwendungDrop-in IDistributedCache + HybridCache, nativer asynchroner Client
HochverfügbarkeitReplikation + Cluster-ModusPartitioniert + repliziert (konfigurierbarer RF); kein Datenverlust bei Node-Ausfall
DurchsatzEin Thread pro Instanz; für mehr Cores weitere Instanzen hinzufügenNutzt jeden Core — +70–87% vs Redis on 8-core nodes (gemessen)
Scale-outRedis Cluster; jede Instanz bleibt flachNahezu linear über Nodes hinweg — 18.5M ops/sec at 3 nodes gegenüber 7,57 Mio. bei Redis
Latenz pro Operation~83 µs p50~81 µs p50 — gleichauf, keine Einbußen durch Kompatibilität
Indizierte SucheÜber das separate RediSearch-ModulIntegriert SQL-artige Suche — eine Million Datensätze in Millisekunden, schneller als eine festplattenbasierte Datenbank, skaliert mit den Nodes
Speicher pro DatensatzSparsamer~2,5× (Managed Engine + Metadaten pro Datensatz) — der ehrliche Kompromiss
BetriebCLI + Dashboards von DrittanbieternIntegrierte Web-Konsole + PowerShell
DeploymentEigenständiger ServerWindows-Installer · Docker Compose · Kubernetes-Helm-Chart (Multi-Arch)
KoordinationBausteine (MULTI/EXEC, Redlock)Erstklassig: Transaktionen, Locks, Leader-Election, Leases, Zähler, Rate Limiting
SicherheitACLs + TLSMutual TLS, steckbares CA-Vertrauen, Token-Authentifizierung
SprachabdeckungClients in jeder SpracheNativer .NET-Client, plus ein Redis-Protokoll-Frontend (RESP) für jede Sprache
Datenstrukturen & Pub/SubStrings, Hashes, Listen, Sets, Sorted Sets, Streams, Pub/SubNative Hashes, Listen, Sets, Sorted Sets, Pub/Sub und Streams (2.0.0)
ReifegradPraxiserprobt, riesiges ÖkosystemAllgemein verfügbar (2.0.0), .NET-fokussiert

Umstieg in wenigen Zeilen​

Zaris spricht die Schnittstellen, die ASP.NET Core bereits verwendet – der Umstieg ist daher größtenteils eine Frage der Konfiguration:

// Program.cs — Zaris as your IDistributedCache
builder.Services.AddClustronZaris("cache", "zaris://cache-0:7861,cache-1:7861/app");
builder.Services.AddClustronDistributedCache("cache");

// ...then inject IDistributedCache (or HybridCache) and use it exactly as before.

Connection Strings sind in-process, remote, in Docker und auf Kubernetes identisch — zaris://host:7861/store (zariss:// für TLS), mit kommagetrennten Seed-Hosts, automatischem Failover und Tokens, die sicher über env: oder file: bereitgestellt werden.

Wann Sie was wählen sollten​

Wählen Sie Zaris, wenn Ihre Services auf .NET basieren und Sie eine native, selbst gehostete, hochverfügbare In-Memory-Datenplattform wünschen — eine Engine für Caching, indizierte Suche und Koordination, mit .NET-first-Integration und -Betrieb. Sie ist die stärkere Wahl, wenn Sie mehr Durchsatz als eine einzelne Redis-Instanz benötigen, eine Skalierung, die mit Cores und Nodes wächst, oder eine indizierte Suche über Ihre Daten ohne ein zweites System.

Wählen Sie Redis, wenn Sie heute die längste Produktionserfahrung und das größte Ökosystem benötigen, wenn Ihre Workload bei sehr kleinen Werten speichergebunden ist (Redis ist pro Datensatz sparsamer) oder wenn Sie auf Redis-Funktionen angewiesen sind, die Zaris nicht implementiert (Lua-Scripting, Bitmaps, HyperLogLog, Geo, RDB/AOF-Persistenz). Beachten Sie, dass Zaris 2.0.0 native Hashes, Listen, Sets, Sorted Sets, Pub/Sub und Streams bietet — sowie ein Redis-Protokoll-Frontend (RESP), mit dem Clients in jeder Sprache (Python, Ruby, Java, Go, …) Zaris als Drop-in nutzen können — „Nutzung über nicht-.NET-Sprachen hinweg“, „Datenstrukturen“ und „Pub/Sub“ sind daher keine Ausschlussgründe mehr für Zaris. Welche Befehle genau funktionieren, entnehmen Sie der Redis-Befehlskompatibilitätsmatrix.

Häufig gestellte Fragen​

Was ist eine gute Redis-Alternative für .NET?

Zaris — ein verteilter In-Memory-Key/Value-Store, der nativ für .NET entwickelt wurde. Er ist repliziert, hochverfügbar und selbst gehostet, mit Drop-in-IDistributedCache/HybridCache und einem nativen asynchronen Client.

Gibt es einen nativen verteilten .NET-Cache als Alternative zu Redis?

Ja. Zaris läuft dort, wo Ihre .NET-Anwendung läuft (einschließlich erstklassiger Windows-Unterstützung) und integriert sich über native .NET-Typen, statt über einen separaten Server, der über ein Wire-Protokoll angesprochen wird.

Ist Zaris wie Redis hochverfügbar?

Ja. Daten werden partitioniert, und jede Partition wird mit einem konfigurierbaren Replikationsfaktor repliziert, sodass ein Node ausfallen kann, ohne dass Daten verloren gehen oder Ausfallzeiten entstehen. Der Standard sind 4 Nodes mit RF 2.

Wie wechsle ich in ASP.NET Core von Redis zu Zaris?

Registrieren Sie den verteilten Zaris-Cache in Program.cs mit einem zaris://-Connection-String. Da Zaris IDistributedCache und HybridCache implementiert, funktioniert Code, der von diesen Schnittstellen abhängt, weiterhin.

Erste Schritte​