Microsoft Garnet
activeby Microsoft Research · since 2024 · also known as Garnet
Microsoft Research's .NET cache-store that speaks RESP and scales across cores and storage tiers.
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
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
Ecosystem
Alternatives to Microsoft Garnet
The in-memory data structure server that became the default cache, now with search, JSON and vectors built in.
garnet vs redis →The Linux Foundation's BSD-licensed fork of Redis, now the default engine on AWS and Google Cloud.
garnet vs valkey →A multi-threaded, shared-nothing in-memory store that speaks Redis and Memcached on one big box.
garnet vs dragonfly →A Redis-protocol database on RocksDB that trades a little latency for disk-sized capacity.
garnet vs apache-kvrocks →A native .NET distributed cache and data grid for Windows and Linux, with an Apache-licensed edition.
garnet vs ncache →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.