RedisおよびValkey互換のRust製インメモリ・キーバリューサーバー。全文検索とベクトル検索を標準搭載。
- スター
- 31,798
- フォーク
- 1,283
- 未解決の Issue
- 276
- 最終コミット
- 7 時間前
これは何?
DragonflyはRedisとMemcachedのプロトコルを実装したインメモリデータストアです。そのため、既存のクライアントやアプリケーションはコードを変更せずに接続できます。C++で書かれており、keyspaceをスレッド間で分割するshared-nothingアーキテクチャを採用しています。これにより、通常は単一スレッドに依存するRedisプロセスとは異なり、1つのインスタンスで複数のCPUコアを利用できます。
キャッシュおよびkey-valueのワークロードに対応しており、フラグで有効化できる適応型キャッシュ退避モード、TTLベースの有効期限、バックアップ用のスナップショット機能を備えています。スナップショットはcron式でスケジュールできます。また、Prometheus互換のメトリクスと、メインポートで利用できる組み込みHTTPコンソールを提供しています。信頼できないネットワークに公開する環境では、HTTPコンソールを無効にできます。
READMEには、AWSインスタンス上でRedisおよびMemcachedと比較したベンチマークが掲載されており、スループットとレイテンシの数値はインスタンスのサイズやワークロードによって異なります。これらの数値はプロジェクト独自のテストによるものなので、実際のワークロードで検証するのが最適です。
主な機能
- 01RedisおよびMemcachedのプロトコルと互換性があり、既存のクライアントをコード変更なしで利用できます。
- 02キーをスレッド間で分割するマルチスレッド設計により、複数のCPUコアを活用できます。
- 03メモリ上限に近づくとアイテムを退避する、適応型キャッシュ退避モードを備えています。
- 04cron構文によるスナップショットのスケジュール設定と、Prometheus互換のメトリクスに対応しています。
- 05メインポートで利用できる組み込みHTTPコンソールを備えており、無効化も可能です。
ユースケース
- 単一スレッドのCPU性能がボトルネックになったRedis環境の置き換え。
- RedisまたはMemcachedクライアントを使うデータベースの前段にキャッシュ層として配置。
- 多数のコアを持つ大規模なクラウドインスタンスでのkey-valueストア運用。
- PrometheusとGrafanaによるインメモリストアの稼働状況の監視。
クイックスタート
- 1
ドキュメントのクイックスタートガイドに従って、Dragonflyのバイナリを入手します
- 2
サンプルの起動スクリプトのオプションを使ってDragonflyを起動します
./dragonfly-x86_64 --logtostderr --requirepass=youshallnotpass --cache_mode=true -dbnum 1 --bind localhost --port 6379 --maxmemory=12gb --keys_output_limit=12288 --dbfilename dump
使う前に知っておきたいこと
- メタデータではライセンスがNOASSERTIONと記載されているため、使用する前にリポジトリでライセンス条項を直接確認する必要があります。
- 2^28 msを超える有効期限は最も近い秒単位に丸められるため、すべての用途に適するとは限りません。
トピック
よくある質問
- dragonfly とは?
- RedisとMemcachedのAPI互換性を備え、両方のドロップイン置き換えを目指すインメモリデータストア。 DragonflyはRedisとMemcachedのプロトコルを実装したインメモリデータストアです。そのため、既存のクライアントやアプリケーションはコードを変更せずに接続できます。C++で書かれており、keyspaceをスレッド間で分割するshared-nothingアーキテクチャを採用しています。これにより、通常は単一スレッドに依存するRedisプロセスとは異なり、1つのインスタンスで複数のCPUコアを利用できます。
- dragonfly は無料で使えますか?ライセンスは?
- dragonfly は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- dragonfly は今もメンテナンスされていますか?
- 活発にメンテナンス中。dragonfly の最終コミットは 2026年10月19日 です。
- dragonfly は何に使えますか?
- 単一スレッドのCPU性能がボトルネックになったRedis環境の置き換え。 RedisまたはMemcachedクライアントを使うデータベースの前段にキャッシュ層として配置。 多数のコアを持つ大規模なクラウドインスタンスでのkey-valueストア運用。 PrometheusとGrafanaによるインメモリストアの稼働状況の監視。
- dragonfly のインストール方法は?
- ドキュメントのクイックスタートガイドに従って、Dragonflyのバイナリを入手します サンプルの起動スクリプトのオプションを使ってDragonflyを起動します: ./dragonfly-x86_64 --logtostderr --requirepass=youshallnotpass --cache_mode=true -dbnum 1 --bind localhost --port 6379 --maxmemory=12gb --keys_output_limit=12288 --dbfilename dump
- dragonfly はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/dragonflydb/dragonfly
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Apache IoTDBは、IoTセンサーデータを収集・保存・分析する時系列データベースです。
PostgreSQL、MySQLなどに対応したmacOS・Windows・Linux向けネイティブDB IDE。MCPサーバーとAIチャットを搭載。
Postgresを中心とした開発プラットフォーム。Firebaseの代替として、ホステッドPostgresデータベースに認証、自動生成API、ストレージ、リアルタイム機能を備えています。
JDBCおよびODBCドライバー経由で100種類以上のデータベースに接続できる、無料のマルチプラットフォーム対応デスクトップSQLクライアント兼データベースツール。
Linux、macOS、Windows対応のクロスプラットフォームSQLエディター兼データベース管理ツール