This is the benchmark harness behind the RepoFlow article Redis vs Valkey vs DragonflyDB vs KeyDB Benchmarks.
The published benchmark results live in the article. This repository is only the source harness used to run the tests.
This is not meant to be a general benchmarking platform. It is the small purpose built harness we used for this comparison and shared so the work can be inspected, reproduced, and improved.
If you just want to reproduce the full run, use:
./run-cache-benchmarkIf you want a quick sanity check first:
./run-cache-benchmark --profile smokeIf you want to rerun only a few targets:
./run-cache-benchmark --targets keydb:ga_baseline,valkey:latest --skip-pubsubYou need Docker and Python 3.9 or newer. The harness builds pinned images locally, runs each repeat in a fresh container, and writes local outputs under results/. Those generated outputs are not part of the repository.
The default workload set covers write_small, read_hot, cache_mix, pipeline_mix, and pubsub_fanout. The key value workloads use a native Docker image built from pinned memtier_benchmark source, and the pubsub workload uses the small bundled probe in cachebench/pubsub_probe.py.
This repo is intentionally small. The harness lives in cachebench/main.py, the pubsub probe lives in cachebench/pubsub_probe.py, and the server images live under docker/.
Issues and pull requests are welcome.
This project is licensed under Apache License 2.0. See LICENSE and NOTICE.