HeadlinesBriefing HeadlinesBriefing.com

KiviDB: Rust-Redis-Alternative mit integrierter Suche

Hacker News •
×

Ein Entwickler hat KiviDB veröffentlicht, eine quelloffene, multithreaded Alternative zu Redis und Valkey, die in Rust geschrieben ist. Das Projekt begann im Februar 2026 als Möglichkeit, Rust zu lernen, und sollte zugleich Speicherspitzen nach Snapshots sowie Out-of-Memory-Fehler in laufenden Pods beheben – Probleme, mit denen der Autor bei Dragonfly konfrontiert war. KiviDB unterstützt sowohl das RESP2- als auch das RESP3-Protokoll, sodass bestehende Redis-Clients unverändert funktionieren. Sein Keyspace wird über Threads hinweg sharding-artig verteilt, und die beste Leistung erzielt es unter Linux dank io_uring über das Crate tokio_uring; auf anderen Betriebssystemen wird auf Tokio zurückgegriffen. Die Kern-Engine steht unter der AGPLv3-Lizenz, und der Autor merkt an, dass etwa 98–99 % der Befehle von Redis 8.10 unterstützt werden.

Der Autor führte Benchmarks auf zwei c7gn.metal-Servern in derselben Placement Group in us-east1 mit memtier-benchmark durch, mit 10 Millionen Schlüsseln à 100 Byte, verteilt auf 32 Kerne. Mit Pipelining bei einer Tiefe von 16 erreichte KiviDB 21,2 Millionen GET-Operationen pro Sekunde, verglichen mit 9,1 Millionen bei Dragonfly 2.0, 2,4 Millionen bei Redis 8.10 und 4,7 Millionen bei einem Redis Cluster mit 32 Shards. Ohne Pipelining war Dragonfly mit 3,35 Millionen ops/s geringfügig schneller als KiviDB mit 3,07 Millionen. Der Speicherverbrauch pro Schlüssel betrug 177 Byte bei KiviDB, 134 Byte bei Dragonfly und 178 Byte bei Redis. Das Einlesen von Vektoren war langsamer als bei den Alternativen, während Vektorabfragen bei niedrigen ef-Werten schneller, bei hohen ef-Werten jedoch langsamer als Dragonfly waren.

Das Projekt enthält außerdem integrierte Volltext- und Vektorsuche, und der Autor hat ein Konzept für einen verwalteten Cloud-Dienst über AWS, GCP und Azure entwickelt. Bekannte Lücken bei den Befehlen werden auf GitHub verfolgt, und Mitwirkende sind eingeladen. Das Projekt lässt sich mit einem einzigen Docker-Befehl ausprobieren, der den Server auf Port 6380 startet.

Quelle: Hacker News · Zusammengefasst von HeadlinesBriefing