Navigate:
Dragonfly
~$DRAGO0.2%

Dragonfly: Modern in-memory data store

In-memory data store with Redis/Memcached API compatibility and multi-threaded C++.

LIVE RANKINGS • 11:47 AM • STEADY
OVERALL
#219
21
BACKEND & APIS
#9
1
30 DAY RANKING TREND
ovr#219
·Backe#9
STARS
29.9K
FORKS
1.1K
7D STARS
+53
7D FORKS
+1
See Repo:
Share:

Learn more about Dragonfly

Dragonfly is an in-memory key-value data store that serves as a drop-in replacement for Redis and Memcached. The system is implemented in C++ with a multi-threaded architecture using fiber-based concurrency, allowing it to scale vertically across multiple CPU cores. It maintains full API compatibility with Redis and Memcached protocols, requiring no application code changes for adoption. The database supports features like vector search, message brokering, and various data persistence options including snapshotting.

Dragonfly

1

Multi-threaded Architecture

Uses fiber-based concurrency and multi-threading to utilize multiple CPU cores, unlike Redis's single-threaded design. This allows throughput to scale with instance size rather than hitting CPU bottlenecks.

2

Memory Efficiency

Implements a custom data structure called Dashtable that reduces memory overhead. Shows 30% better memory efficiency compared to Redis in idle state and minimal memory increase during snapshot operations.

3

API Compatibility

Maintains full compatibility with Redis and Memcached APIs and protocols. Applications can migrate without code changes while gaining access to additional features like vector search capabilities.


# Basic benchmark command for testing Dragonfly performance
memtier_benchmark --ratio 1:0 -t 4 -c 20 --test-time 100 -d 256 --distinct-client-seed

# Advanced benchmark with pipeline mode for higher throughput
memtier_benchmark --ratio 1:0 -t <threads> -c 30 -n 200000 --distinct-client-seed -d 256 --pipeline=30 --expiry-range=500

# GET operations benchmark
memtier_benchmark --ratio 0:1 -t 6 -c 20 --test-time 100 -d 256 --distinct-client-seed


vv1.36.0

1. Support Global Vector index #6103

  • actions: Add a volume mount to container by @abhijat in
  • chore: remove RecvProvided from dragonfly connection by @kostasrim in
  • fix(rdb_load): Store streamed items per rdb lodaer by @dranikpg in
  • fix(search): Result set cutoff by @dranikpg in
  • fix: remove duplicate expired/evicted metric header by @romange in
vv1.35.1

v1.35.1

  • fix(tiering): improvements around tiering stability #6040 #6086 #6067
  • fix(server): replica rejects replicating from itself #6097
vv1.34.2

It is strongly advised to update to this version if you use 1.34.0 / 1.34.1 due to regression when Dragonfly runs in cache mode

  • fix(evicition): Don't accumulate deleted bytes if there is no RSS evi… by @BorysTheDev in


[ EXPLORE MORE ]

Related Repositories

Discover similar tools and frameworks used by developers