Repolode
Snapchat

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. 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. 2

    サブモジュールの依存関係を初期化して更新する

    git submodule init && git submodule update
  3. 3

    KeyDBをコンパイルする

    make
  4. 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 の数値は毎日更新されます。

関連プロジェクト