Repolode
microsoft

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. 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 обновляется ежедневно.

Похожие проекты