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 작업 외에도 KiviDB는 전문 및 벡터 검색(Redis-Stack 스타일의 FT.* 명령어)을 번들로 제공하며, 선택적으로 Lua 스크립팅과 TLS를 지원합니다.

AI/ML에서 중요한 이유

  • 벡터 검색 – KiviDB는 ANN(근사 최근접 이웃) 인덱스(FLAT 및 HNSW)를 구현하여 고차원 임베딩(예: 문장 또는 이미지 벡터)을 데이터베이스에 직접 저장하고 쿼리할 수 있게 합니다. 이는 RAG(검색 증강 생성), 유사도 검색, 추천 시스템 및 기타 AI 워크로드의 핵심 구성 요소입니다.
  • 전문 + 하이브리드 검색 – 단일 쿼리에서 벡터 유사도와 키워드, 태그 또는 숫자 필터를 결합하여 정교한 RAG 파이프라인을 구현할 수 있습니다.
  • 속도 – 32코어 AWS Graviton3 장비에서의 벤치마크 결과, 2100만 GETs/s(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 하에 오픈 소스로 제공; 풀 리퀘스트를 통한 기여 환영.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트