RedisとMemcachedのAPI互換性を備え、両方のドロップイン置き換えを目指すインメモリデータストア。
Snapchat/KeyDB
マルチスレッド対応のRedis互換インメモリデータベース。Redisのドロップイン代替として、active-activeレプリケーションとオプションのFLASHストレージを備えます。
代替できる製品:Redis
- スター
- 12,498
- フォーク
- 679
- 未解決の Issue
- 295
- 最終コミット
- 16 日前
これは何?
KeyDBは、マルチスレッド化、メモリ効率、スループットを重視した高性能なRedisフォークです。Redisプロトコル、モジュール、スクリプトとの完全な互換性を保っているため、クライアントやアプリケーションコードを変更せずに、既存のRedis環境から切り替えられます。
Redisの機能に加え、KeyDBはactive-activeレプリケーションを備えています。複数のインスタンスで読み取りと書き込みを受け付けながら同期を保てるため、TCPベースのロードバランシングやホットスタンバイへのフェイルオーバーを簡素化できます。また、ローカルSSDを使うFLASHストレージ、サブキーの有効期限設定、オプションのS3へのダンプとロードにも対応しています。MVCC設計により、KEYSやSCANなどのコマンドをデータベースをブロックせずに実行できます。
KeyDBはLinux上で動作し、Linux上でビルドのテストが行われています。マルチスレッド処理はserver-threadsなどのオプションやクライアントの負荷分散設定で制御でき、ビルドではTLSがデフォルトで有効です。
主な機能
- 01Redisプロトコル、モジュール、スクリプトと互換性のあるマルチスレッドのリクエスト処理。
- 02複数のインスタンスで読み取りと書き込みを受け付けられるactive-activeレプリケーション。
- 03ローカルSSDを使ったFLASHストレージ(実験的機能)。
- 04サブキーの有効期限設定と、MVCCに基づくKEYSおよびSCANのノンブロッキング実行。
- 05AWS S3へのオプションのダンプとロード。
ユースケース
- 既存のRedis環境を置き換え、同じハードウェアでスループットを高める。
- 複数のインスタンスで読み取りと書き込みを同時に処理するキャッシュ層を運用する。
- 各ノードがより多くの負荷を処理できるようにし、サーバー台数を減らす。
クイックスタート
- 1
Debian/Ubuntuにビルド依存関係をインストールする
sudo apt install build-essential nasm autotools-dev autoconf libjemalloc-dev tcl tcl-dev uuid-dev libcurl4-openssl-dev libbz2-dev libzstd-dev liblz4-dev libsnappy-dev libssl-dev - 2
サブモジュールの依存関係を初期化して更新する
git submodule init && git submodule update - 3
KeyDBをコンパイルする
make - 4
srcディレクトリから、デフォルト設定でサーバーを起動する
./keydb-server
使う前に知っておきたいこと
- Linux SO_REUSEPORTに依存しているため、ビルドとテストはLinuxでのみ行われています。
- FLASHストレージは実験的な機能(ベータ版)です。使用には注意してください。
- 有償サポートは提供していません。サポートはコミュニティの各種窓口で受けられます。
収録されている特集
トピック
よくある質問
- KeyDB とは?
- マルチスレッド対応のRedis互換インメモリデータベース。Redisのドロップイン代替として、active-activeレプリケーションとオプションのFLASHストレージを備えます。 KeyDBは、マルチスレッド化、メモリ効率、スループットを重視した高性能なRedisフォークです。Redisプロトコル、モジュール、スクリプトとの完全な互換性を保っているため、クライアントやアプリケーションコードを変更せずに、既存のRedis環境から切り替えられます。
- KeyDB は無料で使えますか?ライセンスは?
- KeyDB は BSD-3-Clause ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- KeyDB は今もメンテナンスされていますか?
- 活発にメンテナンス中。KeyDB の最終コミットは 2026年10月22日 です。
- KeyDB は何に使えますか?
- 既存のRedis環境を置き換え、同じハードウェアでスループットを高める。 複数のインスタンスで読み取りと書き込みを同時に処理するキャッシュ層を運用する。 各ノードがより多くの負荷を処理できるようにし、サーバー台数を減らす。
- KeyDB のインストール方法は?
- Debian/Ubuntuにビルド依存関係をインストールする: sudo apt install build-essential nasm autotools-dev autoconf libjemalloc-dev tcl tcl-dev uuid-dev libcurl4-openssl-dev libbz2-dev libzstd-dev liblz4-dev libsnappy-dev libssl-dev サブモジュールの依存関係を初期化して更新する: git submodule init && git submodule update KeyDBをコンパイルする: make srcディレクトリから、デフォルト設定でサーバーを起動する: ./keydb-server
- KeyDB はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/Snapchat/KeyDB
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
キャッシュやリアルタイム処理向けの、高性能でRedis互換のキーバリューデータ構造サーバー。Redisからフォークされました。
Redis RESPプロトコルに対応したC#製のリモートキャッシュストアで、既存のRedisクライアントを変更せずに接続できます。
RedisおよびValkey互換のRust製インメモリ・キーバリューサーバー。全文検索とベクトル検索を標準搭載。
RocksDBをストレージに使用し、Redisプロトコルに対応する分散NoSQLキーバリューデータベース。既存のRedisクライアントから接続できます。
TTLによる有効期限と、Redis、MongoDB、SQLite、PostgreSQLなどのバックエンドを利用できるNode.js向けキーバリューストレージライブラリ。