run-macro-benchmarks

Run RediSearch end-to-end macro benchmarks against a real redis-server via redisbench-admin.

6.2k|596|Updated May 5, 2016
One-click install
npx skills add https://github.com/RediSearch/RediSearch --skill run-macro-benchmarks
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: run-macro-benchmarks
Source: https://github.com/RediSearch/RediSearch/tree/main/.skills/run-macro-benchmarks
Command: npx skills add https://github.com/RediSearch/RediSearch --skill run-macro-benchmarks

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires redisbench-admin.

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.

Frequently Asked Questions about run-macro-benchmarks

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I run a RediSearch macro benchmark locally?▼

Use redisbench-admin run-local with the benchmark's tests/benchmarks/*.yml config, passing the release redisearch.so and rejson.so module paths. The run starts its own redis-server on port 6379 and reports throughput and latency percentiles.

What is the difference between macro benchmarks and Rust micro-benchmarks in RediSearch?▼

Macro benchmarks measure whole-module performance against a real redis-server using redisbench-admin and YAML configs. Rust micro-benchmarks use Criterion for isolated function-level timing and are run with a separate workflow.

Why does the benchmark fail with a keyspace check error like 0 != expected keys?▼

This usually means port 6379 was already occupied by another redis-server, so redisbench-admin's server failed to bind and the dataset loaded into the stale server without the right modules. Free port 6379 before running.

Why is RedisJSON required for RediSearch benchmarks?▼

RedisJSON is always loaded like CI so JSON benchmarks work. Without rejson.so, dataset loading fails with unknown command 'JSON.SET' and the run aborts on a keyspace check.

Can I run a benchmark while building RediSearch?▼

No. Running benchmarks concurrently with build.sh, make, or cargo causes contention on the shared Cargo build directory and running redis instances, which skews benchmark timings.