kividbio/kividb

A fast, multi-threaded Redis® and Valkey alternative written in Rust: drop-in compatible, with full-text and vector search built in

KiviDBとは?

KiviDBは、Rustで記述された高性能かつマルチスレッド対応のインメモリキーバリューストアです。Redisプロトコル (RESP2/RESP3) に準拠しているため、既存のRedisクライアントをそのまま使用できます。従来のGET/SET操作に加え、全文検索およびベクトル検索 (Redis-Stackスタイルの FT.* コマンド) を統合しており、オプションでLuaスクリプトやTLSもサポートしています。

AI/MLにおける重要性

  • ベクトル検索 – KiviDBはANN(近似最近傍)インデックス(FLATおよびHNSW)を実装しており、高次元の埋め込み(文章や画像のベクトルなど)をデータベース内で直接保存・クエリできます。これは、RAG(検索拡張生成)、類似検索、レコメンデーション、その他のAIワークロードにおける中核的な構成要素です。
  • 全文検索 + ハイブリッド検索 – ベクトルの類似性とキーワード、タグ、数値フィルタを単一のクエリで組み合わせることができ、高度なRAGパイプラインを実現します。
  • 速度 – 32コアのAWS Graviton3マシンでのベンチマークでは、2100万GETs/秒(Redis 8の約9倍)を記録しつつサブミリ秒のレイテンシを維持しており、大規模なAI推論サービスにおいて非常に価値があります。

主な機能

機能 詳細
プロトコル互換性 Redisコマンドセットを実装。redis-cli、各種ライブラリ、既存のRedisツールと連携可能。
シャーディングされたマルチスレッドコア 各CPUコアがインメモリハッシュテーブルのシャードを保持し、コマンドの並列実行を可能にします。
永続化 スナップショット (dump.kdb) およびオプションのAOF (Append-Only File) による耐久性確保。
検索 FT.CREATE、FT.SEARCH、FT.HYBRID など – ハッシュフィールドに対するBM25全文検索、タグ、数値、ANN (FLAT/HNSW) 検索。
Luaスクリプト オプション (--features lua) – EVAL、SCRIPT、FUNCTION、FCALL をサポート。
TLS オプション (--features tls) – 個別のTLSリスナーと相互TLSをサポート。
デプロイ Dockerイメージ、Linux .deb/.rpm パッケージ、Linux/macOS用ビルド済みバイナリ、Cargoによるソースビルド。
設定 Redisスタイルの設定ファイルまたはコマンドラインフラグ。デフォルトで保護モードが有効。
ライセンス AGPL-3.0(使用してもアプリケーションに自動的にAGPLが適用されることはありません)。

はじめ方(クイック例)

# 公式Dockerイメージの実行
docker run -d -p 6380:6380 kividb/kividb

# 接続テスト
redis-cli -p 6380 PING   # → PONG

# ベクトルインデックスの作成 (HNSW, 128次元 float32 ベクトル)
redis-cli -p 6380 FT.CREATE idx ON HASH PREFIX 1 doc: \
  SCHEMA vec VECTOR HNSW 10 TYPE FLOAT32 DIM 128 DISTANCE_METRIC COSINE M 16 EF_CONSTRUCTION 128

# ハッシュへのベクトル保存 (バイナリblob)
redis-cli -p 6380 HSET doc:1 vec <binary-blob>

# 10個の最近傍をクエリ
redis-cli -p 6380 FT.SEARCH idx '*=>[KNN 10 @vec $q]' \
  PARAMS 2 q <binary-blob> DIALECT 2

すべてのコマンドはRedis Stackと同じ構文に従うため、既存のチュートリアルがそのまま適用できます。

KiviDBを選ぶべき理由

  • Redis互換 のクライアントライブラリが必要だが、より優れたマルチコアスケーラビリティ を求めている場合。
  • 大規模なベクトル類似検索(LLMベースのRAGのための埋め込みストアなど)を含むワークロードがあり、個別のベクトルDBではなく オールインワンのサーバー を好む場合。
  • Redisの利便性を維持しつつ、Rustレベルの安全性とパフォーマンス を求めている場合。
  • 追加モジュールを導入せずに、オプションの TLS や Luaスクリプト が必要な場合。

エコシステムにおける位置付け

KiviDBは他のRedis互換サーバー(Redis 8、Valkey、Dragonfly、KeyDB)と並びますが、以下の点で差別化されています:

  • 単一のI/Oスレッドではなく、シャーディングされたキー空間で すべてのコア を活用。
  • 外部モジュールなしで ベクトル検索を内蔵。
  • Rustによる実装 を提供しており、安全性とパフォーマンスを重視するチームに最適。

リソース

  • GitHub – https://github.com/kividbio/kividb
  • ウェブサイト – https://kividb.io
  • ドキュメント – サポートされているコマンドは COMMANDS.md、ログ、永続化、TLS、更新チェックの詳細は docs/ を参照。
  • ベンチマーク – README内の動画と表で、スループット、レイテンシ、ベクトル検索性能を確認可能。
  • コミュニティ – AGPL-3.0の下でオープンソース化。プルリクエストによる貢献を歓迎します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト