Skip to main content

Zaris: a native Redis alternative for .NET

Zaris is a distributed, in-memory key/value store built natively for .NET — a Redis alternative for teams whose stack is .NET. It is replicated, highly available, and self-hosted: data is partitioned across nodes and kept at a configurable replication factor, so a node can fail without data loss or downtime. You run it on Windows, Docker, and Kubernetes, and operate it from a web console, PowerShell, or straight from your application.

Why .NET teams look past Redis​

Redis is excellent — mature, fast, and language-agnostic. But for a .NET team it's a separate world: another runtime to operate, Linux-first, reached through a third-party client library, and awkward to run well on Windows. Zaris closes that gap by being part of the .NET platform itself:

  • Drop-in ASP.NET Core caching — IDistributedCache and HybridCache providers, so existing cache code works unchanged.
  • Native .NET client — real async APIs and .NET types, not a protocol wrapper.
  • First-class Windows, Docker, and Kubernetes — including an official Helm chart.
  • Operable — a web console and PowerShell tooling for cluster/partition health, scaling, and TLS.

Zaris vs Redis​

DimensionRedisZaris
Platform fitLanguage-agnostic C server, Linux-firstNative .NET; runs where your .NET app runs, incl. Windows
.NET integrationThird-party client per appDrop-in IDistributedCache + HybridCache, native async client
High availabilityReplication + Cluster modePartitioned + replicated (configurable RF); no data loss on node loss
OperationsCLI + third-party dashboardsBuilt-in web console + PowerShell
DeploymentStandalone serverWindows installer · Docker Compose · Kubernetes Helm chart (multi-arch)
CoordinationBuilding blocks (MULTI/EXEC, Redlock)First-class: transactions, locks, leader election, leases, counters, rate limiting
SecurityACLs + TLSMutual TLS, pluggable CA trust, token auth
Language reachClients in every languageNative .NET client, plus a Redis-protocol (RESP) front-end for any language
Data structures & pub/subStrings, hashes, lists, sets, sorted sets, streams, pub/subNative hashes, lists, sets, sorted sets, pub/sub, and Streams (2.0.0)
MaturityBattle-tested, huge ecosystemGenerally available (2.0.0), .NET-focused

Switch in a few lines​

Zaris speaks the interfaces ASP.NET Core already uses, so adopting it is mostly configuration:

// 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 are identical in-process, remote, in Docker, and on Kubernetes — zaris://host:7861/store (zariss:// for TLS), with comma-separated seed hosts, automatic failover, and tokens supplied safely via env: or file:.

When to choose which​

Choose Zaris when your services are .NET and you want a native, self-hosted, highly available cache and key/value store — with .NET-first integration and operations, and coordination primitives in the same system.

Choose Redis when you need the longest production track record and the largest ecosystem today, or you depend on Redis features Zaris does not implement (Lua scripting, bitmaps, HyperLogLog, geo, RDB/AOF persistence). Note that Zaris 2.0.0 does provide native hashes, lists, sets, sorted sets, pub/sub, and Streams — and a Redis-protocol (RESP) front-end that lets clients in any language (Python, Ruby, Java, Go, …) use Zaris as a drop-in — so "shared across non-.NET languages", "data structures", and "pub/sub" are no longer reasons Zaris rules itself out. See the Redis command compatibility matrix for exactly which commands work.

Frequently asked questions​

What is a good Redis alternative for .NET? Zaris — a distributed, in-memory key/value store built natively for .NET. It's replicated, highly available, and self-hosted, with drop-in IDistributedCache/HybridCache and a native async client.

Is there a native .NET distributed cache instead of Redis? Yes. Zaris runs where your .NET app runs (including first-class Windows) and integrates through native .NET types, rather than a separate server reached over a wire protocol.

Is Zaris highly available like Redis? Yes. Data is partitioned and each partition is replicated at a configurable replication factor, so a node can fail without data loss or downtime. The default is 4 nodes at RF 2.

How do I switch from Redis to Zaris in ASP.NET Core? Register the Zaris distributed cache in Program.cs with a zaris:// connection string. Because Zaris implements IDistributedCache and HybridCache, code that depends on those interfaces keeps working.

Get started​