Skip to content

Latest commit

 

History

History
77 lines (54 loc) · 2.81 KB

File metadata and controls

77 lines (54 loc) · 2.81 KB

Spring Data Valkey Performance Tests

Performance benchmarks for Spring Data Valkey operations across different clients.

Prerequisites

If using a development build of Spring Data Valkey, first install to your local Maven repository before running the tests:

# From project root
$ ./mvnw clean install -DskipTests

See instructions on starting a Valkey server in the Developer Guide. The standalone instance started by the Makefile is used in these tests.

Running Tests

All commands below assume you're in the performance/ directory. To run from the project root, use ./mvnw -q compile exec:java[@<test-name>] -pl performance [<parameters>] instead of ../mvnw. Replace <test-name> and <parameters> from options listed below.

Template Performance Test

Test ValkeyTemplate operations (SET, GET, DELETE) with different clients:

$ ../mvnw -q compile exec:java -Dclient=valkeyglide
$ ../mvnw -q compile exec:java -Dclient=lettuce
$ ../mvnw -q compile exec:java -Dclient=jedis

Multi-Threaded Performance Test

Test template use across multiple threads with different clients:

$ ../mvnw -q compile exec:java@threaded-test -Dclient=valkeyglide
$ ../mvnw -q compile exec:java@threaded-test -Dclient=lettuce
$ ../mvnw -q compile exec:java@threaded-test -Dclient=jedis

Direct Client Performance Test

Test direct client operations without Spring Data Valkey (for comparison):

$ ../mvnw -q compile exec:java@direct-test -Dclient=valkeyglide
$ ../mvnw -q compile exec:java@direct-test -Dclient=lettuce
$ ../mvnw -q compile exec:java@direct-test -Dclient=jedis

Multi-Threaded Direct Client Performance Test

Test direct client operations across multiple threads:

$ ../mvnw -q compile exec:java@threaded-direct-test -Dclient=valkeyglide
$ ../mvnw -q compile exec:java@threaded-direct-test -Dclient=lettuce
$ ../mvnw -q compile exec:java@threaded-direct-test -Dclient=jedis

Template Load Test

Test ValkeyTemplate operations (SET, GET, DELETE) with different clients and concurrency levels.

Parameters:

  • client: Client type - valkeyglide, lettuce, jedis (default: valkeyglide)
  • threads: Number of threads (default: 10)
  • operations: Operations per thread (default: 50)
# Compare a single client with different concurrency levels
$ ../mvnw -q compile exec:java@load-test -Dclient=valkeyglide -Dthreads=5 -Doperations=20
$ ../mvnw -q compile exec:java@load-test -Dclient=valkeyglide -Dthreads=20 -Doperations=100

# Compare across different clients
$ ../mvnw -q compile exec:java@load-test -Dclient=valkeyglide -Dthreads=100 -Doperations=200
$ ../mvnw -q compile exec:java@load-test -Dclient=lettuce -Dthreads=100 -Doperations=200
$ ../mvnw -q compile exec:java@load-test -Dclient=jedis -Dthreads=100 -Doperations=200