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
IDistributedCacheundHybridCache, 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
| Dimension | Redis | Zaris |
|---|---|---|
| Plattform-Passung | Sprachunabhängiger C-Server, Linux-zentriert | Nativ in .NET; läuft dort, wo Ihre .NET-Anwendung läuft, inkl. Windows |
| .NET-Integration | Client eines Drittanbieters pro Anwendung | Drop-in IDistributedCache + HybridCache, nativer asynchroner Client |
| Hochverfügbarkeit | Replikation + Cluster-Modus | Partitioniert + repliziert (konfigurierbarer RF); kein Datenverlust bei Node-Ausfall |
| Durchsatz | Ein Thread pro Instanz; für mehr Cores weitere Instanzen hinzufügen | Nutzt jeden Core — +70–87% vs Redis on 8-core nodes (gemessen) |
| Scale-out | Redis Cluster; jede Instanz bleibt flach | Nahezu 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-Modul | Integriert SQL-artige Suche — eine Million Datensätze in Millisekunden, schneller als eine festplattenbasierte Datenbank, skaliert mit den Nodes |
| Speicher pro Datensatz | Sparsamer | ~2,5× (Managed Engine + Metadaten pro Datensatz) — der ehrliche Kompromiss |
| Betrieb | CLI + Dashboards von Drittanbietern | Integrierte Web-Konsole + PowerShell |
| Deployment | Eigenständiger Server | Windows-Installer · Docker Compose · Kubernetes-Helm-Chart (Multi-Arch) |
| Koordination | Bausteine (MULTI/EXEC, Redlock) | Erstklassig: Transaktionen, Locks, Leader-Election, Leases, Zähler, Rate Limiting |
| Sicherheit | ACLs + TLS | Mutual TLS, steckbares CA-Vertrauen, Token-Authentifizierung |
| Sprachabdeckung | Clients in jeder Sprache | Nativer .NET-Client, plus ein Redis-Protokoll-Frontend (RESP) für jede Sprache |
| Datenstrukturen & Pub/Sub | Strings, Hashes, Listen, Sets, Sorted Sets, Streams, Pub/Sub | Native Hashes, Listen, Sets, Sorted Sets, Pub/Sub und Streams (2.0.0) |
| Reifegrad | Praxiserprobt, riesiges Ökosystem | Allgemein 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
- Installation (alle Plattformen): clustron.io/install
- Dokumentation: clustron.io/docs
- Ausführlicherer Vergleich: Zaris vs Redis
- NuGet:
dotnet add package Clustron.Zaris.SDK - Quellcode & Releases: github.com/Clustron/zaris