Microsoft Garnet

active

by Microsoft Research · since 2024 · also known as Garnet

Microsoft Research's .NET cache-store that speaks RESP and scales across cores and storage tiers.

key-valuevectordatabase engineopen source (permissive)growing

Overview

Garnet is a remote cache-store from Microsoft Research built on .NET and the Tsavorite storage engine (a descendant of FASTER). It speaks RESP, so unmodified Redis clients work, but its multi-threaded, epoch-protected design scales throughput with cores and lets data spill from memory to SSD or cloud storage. It supports cluster mode with sharding and migration, Lua, transactions via stored procedures, and recently preview vector sets on DiskANN. It powers several internal Microsoft services and is a good option for .NET shops or anyone wanting an MIT-licensed Redis-compatible server with a larger-than-memory tier.

Strengths & trade-offs

Strengths

  • +Throughput scales with cores thanks to a lock-free, multi-threaded storage engine
  • +Larger-than-memory storage tier spilling to SSD and Azure Storage
  • +MIT license from a large vendor with an active research team
  • +Embeddable in .NET apps and extensible with C# server-side procedures
  • +Low tail latency on large batched workloads

Trade-offs

  • −Not every Redis command or module is implemented
  • −Smaller community and fewer packaged deployments than Redis/Valkey
  • −No first-party managed cloud service
  • −Operational tooling is younger (backup, monitoring, operators)

Great for

  • +Redis-compatible caching for .NET-heavy stacks
  • +High-throughput caches that need an SSD spill tier
  • +Embedding a cache-store inside a .NET service

Think twice for

  • −Apps relying on Redis Stack modules
  • −Teams wanting a fully managed service

Capabilities

Native or official first-party support · 9 of 25 tracked

✓Transactions
✓Vector search
✓Geospatial
✓Stored procedures
✓TTL / expiry
✓Pub/Sub
✓In-memory
✓Durable persistence
✓Role-based access
–Joins
–Secondary indexes
–Full-text search
–JSON
–Change data capture
–Triggers
–Materialized views
–Columnar storage
–Compression
–Encryption at rest
–Time travel
–Branching
–Online schema changes
–Streaming ingest
–Offline sync
–Runs in WebAssembly

Scale & consistency

Comfortable data size
Medium · ≤ 10 TB
Horizontal scaling
Native
Multi-region
No
Transactions
Limited ACID
Consistency
Eventual
Schema
Schemaless
Architecture
In memory, Single node, Primary replica, Distributed, Client server
Query languages
Redis commands (RESP), Lua, C# stored procedures

Cluster mode with hash-slot sharding and key migration; Tsavorite tiers data from RAM to SSD and cloud storage.

Deployment

Self-hosted Vendor-managed cloud Serverless Embedded Edge Kubernetes operator

Ecosystem

compatible withRedis
apis & protocolsRESP2/RESP3
client languagesPython, Java, JavaScript, Go, C#, Rust, Ruby, PHP, C
used byMicrosoft

Alternatives to Microsoft Garnet

Compare all→
RedisKey-Value84.3

The in-memory data structure server that became the default cache, now with search, JSON and vectors built in.

garnet vs redis →
ValkeyKey-Value58.0

The Linux Foundation's BSD-licensed fork of Redis, now the default engine on AWS and Google Cloud.

garnet vs valkey →
DragonflyKey-Value20.7

A multi-threaded, shared-nothing in-memory store that speaks Redis and Memcached on one big box.

garnet vs dragonfly →
Apache KvrocksKey-Value10.3

A Redis-protocol database on RocksDB that trades a little latency for disk-sized capacity.

garnet vs apache-kvrocks →
NCacheKey-Value7.8

A native .NET distributed cache and data grid for Windows and Linux, with an Apache-licensed edition.

garnet vs ncache →
Google Cloud MemorystoreKey-Value5.6

Google Cloud's managed in-memory family: Valkey, Redis, Redis Cluster and Memcached.

garnet vs google-memorystore →

Microsoft Garnet FAQ

What is Microsoft Garnet?

Microsoft Garnet is a key-value database by Microsoft Research, first released in 2024. Garnet is a remote cache-store from Microsoft Research built on .NET and the Tsavorite storage engine (a descendant of FASTER). It speaks RESP, so unmodified Redis clients work, but its multi-threaded, epoch-protected design scales throughput with cores and lets data spill from memory to SSD or cloud storage. It supports cluster mode with sharding and migration, Lua, transactions via stored procedures, and recently preview vector sets on DiskANN. It powers several internal Microsoft services and is a good option for .NET shops or anyone wanting an MIT-licensed Redis-compatible server with a larger-than-memory tier.

Is Microsoft Garnet open source?

Yes. Microsoft Garnet is open source. License: MIT License.

Does Microsoft Garnet support ACID transactions?

Partly. Microsoft Garnet offers limited ACID guarantees (for example, single-record or single-partition transactions), with eventual consistency.

Does Microsoft Garnet scale horizontally?

Microsoft Garnet scales horizontally out of the box, with built-in sharding or partitioning. It is comfortable at medium scale (≤ 10 TB).

How can I run Microsoft Garnet?

You can self-host it and embed it in your application.

What is Microsoft Garnet best for?

Microsoft Garnet is a strong fit for redis-compatible caching for .NET-heavy stacks, high-throughput caches that need an SSD spill tier and embedding a cache-store inside a .NET service. Think twice for apps relying on Redis Stack modules.

What are the best alternatives to Microsoft Garnet?

Common alternatives to Microsoft Garnet include Redis, Valkey, Dragonfly, Apache Kvrocks and NCache. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.

How popular is Microsoft Garnet?

Microsoft Garnet ranks #336 of 844 databases on the WhichDB Score (7.8/100), and #45 among key-value databases. The score combines public adoption signals such as package downloads, GitHub activity, job posts and developer discussion.