RedisとMemcachedのAPI互換性を備え、両方のドロップイン置き換えを目指すインメモリデータストア。
- スター
- 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
プロジェクトのドキュメントにあるスタートガイドに従ってください
使う前に知っておきたいこと
- 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 の数値は毎日更新されます。
関連プロジェクト
キャッシュやリアルタイム処理向けの、高性能でRedis互換のキーバリューデータ構造サーバー。Redisからフォークされました。
マルチスレッド対応のRedis互換インメモリデータベース。Redisのドロップイン代替として、active-activeレプリケーションとオプションのFLASHストレージを備えます。
TTLによる有効期限と、Redis、MongoDB、SQLite、PostgreSQLなどのバックエンドを利用できるNode.js向けキーバリューストレージライブラリ。
.NETアプリケーションからRedisやValkey、Garnet、AWS ElastiCacheなどのRESP互換サーバーに接続するためのクライアントライブラリ。
RocksDBをストレージに使用し、Redisプロトコルに対応する分散NoSQLキーバリューデータベース。既存のRedisクライアントから接続できます。