What problem does it solve?
Measuring whole-module RediSearch performance (throughput and latency) requires correctly resolving release binaries, loading the right modules, and running benchmark configs against a live redis-server — a process with many silent failure modes like benchmarking a debug build or loading into a stale server.
Core Features & Use Cases
- Benchmark Resolution: Accepts a bare benchmark name, filename, or full path and resolves it to a tests/benchmarks/*.yml config, or lists available benchmarks when no argument is given.
- Safe Module Resolution: Locates exactly one release redisearch.so and rejson.so under bin/, refusing to guess when multiple build flavors (debug, coverage) exist.
- Environment Validation: Checks that redis-server, memtier_benchmark, ftsb_redisearch, Python deps, and a free port 6379 are available before running.
- Use Case: After optimizing a query path in RediSearch, run the search-expire-doc-json-10-milliseconds benchmark to verify throughput and latency percentiles against a real redis-server before opening a PR.
Quick Start
Run the macro benchmark search-expire-doc-json-10-milliseconds and summarize the throughput and latency results.