In-memory хранилище данных, совместимое по API с Redis и Memcached и задуманное как их прямая замена.
microsoft/garnet
Удалённое хранилище кэша на C#, совместимое с протоколом Redis RESP: существующие клиенты Redis подключаются к нему без изменений.
Open source альтернатива:Redis
- Звёзды
- 12,078
- Форки
- 722
- Открытые issues
- 81
- Последний коммит
- вчера
Что это?
Garnet — удалённое хранилище кэша, разработанное Microsoft Research. Оно использует протокол RESP, поэтому с ним могут работать клиенты Redis без изменений, например StackExchange.Redis для C#. Проект рассчитан на высокую пропускную способность при большом количестве клиентских подключений и небольших пакетах запросов, а также на низкую задержку для клиентов в облачных средах.
Garnet поддерживает операции со строками и сроком жизни ключей, а также HyperLogLog, битовые карты, сортированные множества, списки, хеши и другие типы объектов. Многоключевые транзакции доступны через клиентские транзакции RESP, хранимые процедуры на стороне сервера и пользовательские расширения на C#. Поддерживаются и скрипты Lua, а TLS реализован с помощью SslStream из .NET.
Слой хранения Tsavorite позволяет распределять данные между памятью, SSD и облачным хранилищем, а также поддерживает контрольные точки, восстановление и журналирование операций для обеспечения надёжности. Режим кластера добавляет шардирование, репликацию и динамическую миграцию ключей; для управления используются стандартные команды кластеров Redis. Среди экспериментальных возможностей — векторные множества для приближённого поиска ближайших соседей и диапазонные индексы по ключам.
Ключевые возможности
- 01Работает с клиентами Redis без изменений благодаря протоколу RESP.
- 02Поддерживает строки, HyperLogLog, битовые карты, сортированные множества, списки, хеши и геоданные.
- 03Позволяет создавать пользовательские операции и хранимые процедуры на C#.
- 04Поддерживает TLS-соединения и базовое управление доступом.
- 05Распределяет данные между памятью, SSD и облачным хранилищем, поддерживая контрольные точки и восстановление.
- 06Предоставляет режим кластера с шардированием, репликацией и миграцией ключей.
Сценарии использования
- Замена кэша Redis в сервисе на .NET с сохранением существующего клиентского кода.
- Обработка нагрузок с высокой конкуренцией, когда множество клиентов отправляют небольшие запросы.
- Реализация пользовательской логики кэша или типов данных на C# поверх совместимого с Redis сервера.
- Запуск кластера кэша с шардированием и репликацией на облачных виртуальных машинах.
Быстрый старт
- 1
Следуйте руководству по началу работы в документации проекта
Что важно знать
- Vector Sets и Range Index находятся в предварительной версии.
- Режим кластера пассивный и не реализует выбор лидера; внешняя плоскость управления должна отправлять команды кластера.
В подборках
Темы
Частые вопросы
- Что такое garnet?
- Удалённое хранилище кэша на C#, совместимое с протоколом Redis RESP: существующие клиенты Redis подключаются к нему без изменений. Garnet — удалённое хранилище кэша, разработанное Microsoft Research. Оно использует протокол RESP, поэтому с ним могут работать клиенты Redis без изменений, например StackExchange.Redis для C#. Проект рассчитан на высокую пропускную способность при большом количестве клиентских подключений и небольших пакетах запросов, а также на низкую задержку для клиентов в облачных средах.
- garnet можно использовать бесплатно? Какая у него лицензия?
- garnet распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- garnet всё ещё поддерживается?
- Активно поддерживается. Последний коммит в garnet — 6 нояб. 2026 г..
- Для чего можно использовать garnet?
- Замена кэша Redis в сервисе на .NET с сохранением существующего клиентского кода. Обработка нагрузок с высокой конкуренцией, когда множество клиентов отправляют небольшие запросы. Реализация пользовательской логики кэша или типов данных на C# поверх совместимого с Redis сервера. Запуск кластера кэша с шардированием и репликацией на облачных виртуальных машинах.
- Как установить garnet?
- Следуйте руководству по началу работы в документации проекта
- Где скачать garnet?
- Исходный код и инструкции по установке — на GitHub: https://github.com/microsoft/garnet
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Высокопроизводительный сервер структур данных «ключ — значение», совместимый с Redis и созданный как форк Redis для кэширования и задач реального времени.
Многопоточная Redis-совместимая база данных в памяти — прямая замена Redis с репликацией active-active и опциональным хранением данных во FLASH.
Библиотека для хранения пар «ключ-значение» в Node.js с TTL и подключаемыми хранилищами, такими как Redis, MongoDB, SQLite и PostgreSQL.
Клиентская библиотека .NET для подключения к Redis и другим RESP-совместимым серверам, таким как Valkey, Garnet и AWS ElastiCache.
Распределённая NoSQL-база данных типа «ключ—значение» на RocksDB с поддержкой протокола Redis, к которой можно подключаться существующими Redis-клиентами.