Repolode
microsoft

microsoft/garnet

Redis RESPプロトコルに対応したC#製のリモートキャッシュストアで、既存のRedisクライアントを変更せずに接続できます。

代替できる製品:Redis

スター
12,078
フォーク
720
未解決の Issue
81
最終コミット
11 時間前

これは何?

GarnetはMicrosoft Researchが開発したリモートキャッシュストアです。RESPワイヤプロトコルを採用しているため、C#のStackExchange.Redisなど、変更していないRedisクライアントからそのまま接続できます。多数のクライアント接続と小さなバッチで高いスループットを実現し、クラウド環境でのクライアントレイテンシ低減を目指しています。

Garnetは、有効期限付きの基本的な文字列操作に加え、HyperLogLog、ビットマップ、ソート済みセット、リスト、ハッシュなどのオブジェクト型をサポートします。複数キーのトランザクションは、クライアント側のRESPトランザクション、サーバー側のストアドプロシージャ、C#で記述するカスタム拡張を通じて利用できます。Luaスクリプトにも対応し、TLSには.NETのSslStreamを使用します。

ストレージレイヤーのTsavoriteは、メモリ、SSD、クラウドストレージ間でデータを階層化でき、耐久性を確保するためのチェックポイント、リカバリ、操作ログにも対応しています。クラスターモードでは、シャーディング、レプリケーション、動的なキー移行が可能になり、管理には標準のRedisクラスタコマンドを使用できます。プレビュー機能には、近似最近傍検索向けのベクトルセットと、キーに対する範囲インデックスが含まれます。

主な機能

  • 01RESPプロトコルを介して、変更していないRedisクライアントから接続できます。
  • 02文字列、HyperLogLog、ビットマップ、ソート済みセット、リスト、ハッシュ、地理空間型をサポートします。
  • 03C#で記述したカスタム操作やストアドプロシージャを利用できます。
  • 04TLS通信と基本的なアクセス制御を提供します。
  • 05チェックポイントとリカバリに対応し、メモリ、SSD、クラウドストレージ間でデータを階層化します。
  • 06シャーディング、レプリケーション、キー移行に対応したクラスターモードを提供します。

ユースケース

  • 既存のクライアントコードを維持したまま、.NETサービスのRedisキャッシュを置き換える。
  • 多数のクライアントが小さなリクエストを送信する、高並行性のワークロードを処理する。
  • Redis互換サーバー上で、C#による独自のキャッシュロジックやデータ型を構築する。
  • クラウドVM上で、シャーディングとレプリケーションを備えたキャッシュクラスターを運用する。

クイックスタート

  1. 1

    プロジェクトのドキュメントにあるスタートガイドに従ってください

使う前に知っておきたいこと

  • Vector Sets と Range Index はプレビュー版です。
  • Cluster mode は受動的で、leader election を実装していません。外部の control plane から cluster commands を発行する必要があります。

収録されている特集

トピック

よくある質問

garnet とは?
Redis RESPプロトコルに対応したC#製のリモートキャッシュストアで、既存のRedisクライアントを変更せずに接続できます。 GarnetはMicrosoft Researchが開発したリモートキャッシュストアです。RESPワイヤプロトコルを採用しているため、C#のStackExchange.Redisなど、変更していないRedisクライアントからそのまま接続できます。多数のクライアント接続と小さなバッチで高いスループットを実現し、クラウド環境でのクライアントレイテンシ低減を目指しています。
garnet は無料で使えますか?ライセンスは?
garnet は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
garnet は今もメンテナンスされていますか?
活発にメンテナンス中。garnet の最終コミットは 2026年11月7日 です。
garnet は何に使えますか?
既存のクライアントコードを維持したまま、.NETサービスのRedisキャッシュを置き換える。 多数のクライアントが小さなリクエストを送信する、高並行性のワークロードを処理する。 Redis互換サーバー上で、C#による独自のキャッシュロジックやデータ型を構築する。 クラウドVM上で、シャーディングとレプリケーションを備えたキャッシュクラスターを運用する。
garnet のインストール方法は?
プロジェクトのドキュメントにあるスタートガイドに従ってください
garnet はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/microsoft/garnet

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト