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の下でオープンソース化。プルリクエストによる貢献を歓迎します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト