Skip to content

Add comprehensive SET:GET mixed workload tests for essential data sizes #300

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jun 27, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "redis-benchmarks-specification"
version = "0.1.270"
version = "0.1.272"
description = "The Redis benchmarks specification describes the cross-language/tools requirements and expectations to foster performance and observability standards around redis related technologies. Members from both industry and academia, including organizations and individuals are encouraged to contribute."
authors = ["filipecosta90 <[email protected]>","Redis Performance Group <[email protected]>"]
readme = "Readme.md"
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
version: 0.4
name: memtier_benchmark-10Mkeys-string-set-update-del-ex-36000-pipeline-10
description: Multi-step test - SET EX 36000 (10 hours), then update same keys with SET EX 36000, then DEL. Tests command throughput with long TTL without active expiration.
dbconfig:
configuration-parameters:
save: '""'
check:
keyspacelen: 0
resources:
requests:
memory: 5g
tested-commands:
- set
- del
tested-groups:
- string
- generic
redis-topologies:
- oss-standalone
build-variants:
- gcc:8.5.0-amd64-debian-buster-default
- dockerhub
clientconfig:
run_image: redislabs/memtier_benchmark:edge
tool: memtier_benchmark
arguments: '--command "SET __key__ BBB EX 36000" --command "SET __key__ BBB EX 36000" --command "DEL __key__" -c 50 -t 4 --command-key-pattern=P --pipeline 10 --hide-histogram --key-maximum 10000000 -n allkeys'
resources:
requests:
cpus: '4'
memory: 2g

priority: 1
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
version: 0.4
name: memtier_benchmark-150Mkeys-string-set-ex-20-pipeline-10
description: Runs memtier_benchmark, for a keyspace of 150M keys with SET EX 20 commands and pipeline 10. Tests medium TTL expiration performance.
dbconfig:
configuration-parameters:
save: '""'
check:
keyspacelen: 0
resources:
requests:
memory: 20g
tested-commands:
- set
tested-groups:
- string
redis-topologies:
- oss-standalone
build-variants:
- gcc:8.5.0-amd64-debian-buster-default
- dockerhub
clientconfig:
run_image: redislabs/memtier_benchmark:edge
tool: memtier_benchmark
arguments: '--command "SET __key__ BBB EX 20" -c 50 -t 4 --command-key-pattern=P --pipeline 10 --hide-histogram --key-maximum 150000000 -n allkeys'
resources:
requests:
cpus: '4'
memory: 2g

priority: 1
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
version: 0.4
name: memtier_benchmark-1Mkeys-generic-scan-cursor-count-5000-pipeline-10
description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on SCAN performance with CURSOR and large COUNT.
dbconfig:
configuration-parameters:
save: '""'
check:
keyspacelen: 1000000
preload_tool:
run_image: redislabs/memtier_benchmark:edge
tool: memtier_benchmark
arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"'
resources:
requests:
memory: 1g
tested-commands:
- scan
tested-groups:
- generic
redis-topologies:
- oss-standalone
build-variants:
- gcc:8.5.0-amd64-debian-buster-default
- dockerhub
clientconfig:
run_image: redislabs/memtier_benchmark:edge
tool: memtier_benchmark
arguments: --command "SCAN __key__ COUNT 5000" --key-prefix "" --distinct-client-seed --key-maximum 1000000 --pipeline 10 --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 180
resources:
requests:
cpus: '2'
memory: 2g

priority: 44
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
version: 0.4
name: memtier_benchmark-1Mkeys-string-get-32B-pipeline-10
description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 32 Bytes for each key.
dbconfig:
configuration-parameters:
save: '""'
check:
keyspacelen: 1000000
preload_tool:
run_image: redislabs/memtier_benchmark:edge
tool: memtier_benchmark
arguments: '"--data-size" "32" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"'
resources:
requests:
memory: 1g
tested-commands:
- get
redis-topologies:
- oss-standalone
build-variants:
- gcc:8.5.0-amd64-debian-buster-default
- dockerhub
clientconfig:
run_image: redislabs/memtier_benchmark:edge
tool: memtier_benchmark
arguments: '--pipeline 10 --data-size 32 --ratio 0:1 --key-pattern R:R -c 25 -t 4 --hide-histogram --test-time 180'
resources:
requests:
cpus: '4'
memory: 2g

tested-groups:
- string
priority: 1
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
version: 0.4
name: memtier_benchmark-1Mkeys-string-get-32B
description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 32 Bytes for each key.
dbconfig:
configuration-parameters:
save: '""'
check:
keyspacelen: 1000000
preload_tool:
run_image: redislabs/memtier_benchmark:edge
tool: memtier_benchmark
arguments: '"--data-size" "32" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"'
resources:
requests:
memory: 1g
tested-commands:
- get
redis-topologies:
- oss-standalone
build-variants:
- gcc:8.5.0-amd64-debian-buster-default
- dockerhub
clientconfig:
run_image: redislabs/memtier_benchmark:edge
tool: memtier_benchmark
arguments: '--data-size 32 --ratio 0:1 --key-pattern R:R -c 25 -t 4 --hide-histogram --test-time 180'
resources:
requests:
cpus: '4'
memory: 2g

tested-groups:
- string
priority: 1
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
version: 0.4
name: memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-expire-pipeline-10
description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% GETs (mixed) with a data size of 100 Bytes, expiration, and pipeline 10 for community/youtuber use-case.
dbconfig:
configuration-parameters:
save: '""'
check:
keyspacelen: 1000000
preload_tool:
run_image: redislabs/memtier_benchmark:edge
tool: memtier_benchmark
arguments: '"--data-size" "100" --command "SET __key__ __data__ EX 10" --command-key-pattern P -c 50 -t 2 --hide-histogram --key-minimum 1 --key-maximum 1000000 -n allkeys'
resources:
requests:
memory: 1g
tested-commands:
- setex
- get
- set
tested-groups:
- string
redis-topologies:
- oss-standalone
build-variants:
- gcc:8.5.0-amd64-debian-buster-default
- dockerhub
clientconfig:
run_image: redislabs/memtier_benchmark:edge
tool: memtier_benchmark
arguments: '"--data-size" "100" --distinct-client-seed --command "SET __key__ __data__ EX 10" --command "GET __key__" --key-pattern R:R --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 4 --hide-histogram --pipeline 10'
resources:
requests:
cpus: '4'
memory: 2g

priority: 1
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
version: 0.4
name: memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-expire
description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% GETs (mixed) with a data size of 100 Bytes and expiration for community/youtuber use-case.
dbconfig:
configuration-parameters:
save: '""'
check:
keyspacelen: 1000000
preload_tool:
run_image: redislabs/memtier_benchmark:edge
tool: memtier_benchmark
arguments: '"--data-size" "100" --command "SET __key__ __data__ EX 10" --command-key-pattern P -c 50 -t 2 --hide-histogram --key-minimum 1 --key-maximum 1000000 -n allkeys'
resources:
requests:
memory: 1g
tested-commands:
- setex
- get
- set
tested-groups:
- string
redis-topologies:
- oss-standalone
build-variants:
- gcc:8.5.0-amd64-debian-buster-default
- dockerhub
clientconfig:
run_image: redislabs/memtier_benchmark:edge
tool: memtier_benchmark
arguments: '"--data-size" "100" --distinct-client-seed --command "SET __key__ __data__ EX 10" --command "GET __key__" --key-pattern R:R --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 4 --hide-histogram'
resources:
requests:
cpus: '4'
memory: 2g

priority: 1
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
version: 0.4
name: memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-pipeline-10
description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% GETs (mixed) with a data size of 100 Bytes and pipeline 10.
dbconfig:
configuration-parameters:
save: '""'
check:
keyspacelen: 1000000
preload_tool:
run_image: redislabs/memtier_benchmark:edge
tool: memtier_benchmark
arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" "allkeys"'
resources:
requests:
memory: 1g
tested-commands:
- set
- get
tested-groups:
- string
redis-topologies:
- oss-standalone
build-variants:
- gcc:8.5.0-amd64-debian-buster-default
- dockerhub
clientconfig:
run_image: redislabs/memtier_benchmark:edge
tool: memtier_benchmark
arguments: '"--data-size" "100" --distinct-client-seed --ratio 1:1 --key-pattern R:R --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 4 --hide-histogram --pipeline 10'
resources:
requests:
cpus: '4'
memory: 2g

priority: 1
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
version: 0.4
name: memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B
description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% GETs (mixed) with a data size of 100 Bytes.
dbconfig:
configuration-parameters:
save: '""'
check:
keyspacelen: 1000000
preload_tool:
run_image: redislabs/memtier_benchmark:edge
tool: memtier_benchmark
arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" "allkeys"'
resources:
requests:
memory: 1g
tested-commands:
- set
- get
tested-groups:
- string
redis-topologies:
- oss-standalone
build-variants:
- gcc:8.5.0-amd64-debian-buster-default
- dockerhub
clientconfig:
run_image: redislabs/memtier_benchmark:edge
tool: memtier_benchmark
arguments: '"--data-size" "100" --distinct-client-seed --ratio 1:1 --key-pattern R:R --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 4 --hide-histogram'
resources:
requests:
cpus: '4'
memory: 2g

priority: 1
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
version: 0.4
name: memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-1KB-pipeline-10
description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% GETs (mixed) with a data size of 1000 Bytes and pipeline 10.
dbconfig:
configuration-parameters:
save: '""'
check:
keyspacelen: 1000000
preload_tool:
run_image: redislabs/memtier_benchmark:edge
tool: memtier_benchmark
arguments: '"--data-size" "1000" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" "allkeys"'
resources:
requests:
memory: 1g
tested-commands:
- set
- get
tested-groups:
- string
redis-topologies:
- oss-standalone
build-variants:
- gcc:8.5.0-amd64-debian-buster-default
- dockerhub
clientconfig:
run_image: redislabs/memtier_benchmark:edge
tool: memtier_benchmark
arguments: '"--data-size" "1000" --distinct-client-seed --ratio 1:1 --key-pattern R:R --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 4 --hide-histogram --pipeline 10'
resources:
requests:
cpus: '4'
memory: 2g

priority: 1
Loading