keydb-benchmark - Man Page

KeyDB benchmark

Synopsis

keydb-benchmark [ options ]

Description

KeyDB is an open source (BSD licensed), in-memory data structure store, used as database, cache and message broker, found at https://docs.keydb.dev/

The keydb-benchmark command is a command to benchmark keydb-server.

Options

-h hostname

Server hostname (default: 127.0.0.1).

-p port

Server port (default: 6379).

-s socket

Server socket (overrides hostname and port).

-a password

Password to use when connecting to the server.

-c clients

Number of parallel connections (default 50)

-dnnum db

SELECT the specified db number (default 0)

-k boolean

1=keep alive 0=reconnect (default 1)

-r keyspacelen

Use random keys for SET/GET/INCR, random values for SADD Using this option the benchmark will expand the string __rand_int__ inside an argument with a 12 digits number in the specified range from 0 to keyspacelen-1. The substitution changes every time a command is executed. Default tests use this to hit random keys in the specified range.

-P numreq

Pipeline <numreq> requests. Default 1 (no pipeline).

-e

If server replies with errors, show them on stdout. (no more than 1 error per second is displayed)

-q

Quiet. Just show query/sec values

--csv

Output in CSV format

-l

Loop. Run the tests forever

-t tests

Only run the comma separated list of tests. The test names are the same as the ones produced as output.

-I

Idle mode. Just open N idle connections and wait.

Examples

Run the benchmark with the default configuration against 127.0.0.1:6379:

$ keydb-benchmark

Use 20 parallel clients, for a total of 100k requests, against 192.168.1.1:

$ keydb-benchmark -h 192.168.1.1 -p 6379 -n 100000 -c 20

Fill 127.0.0.1:6379 with about 1 million keys only using the SET test:

$ keydb-benchmark -t set -n 1000000 -r 100000000

Benchmark 127.0.0.1:6379 for a few commands producing CSV output:

$ keydb-benchmark -t ping,set,get -n 100000 --csv

Benchmark a specific command line:

$ keydb-benchmark -r 10000 -n 10000 eval 'return keydb.call("ping")' 0

Fill a list with 10000 random elements:

$ keydb-benchmark -r 10000 -n 10000 lpush mylist __rand_int__

On user specified command lines __rand_int__ is replaced with a random integer

with a range of values selected by the -r option.

Bugs

See: https://docs.keydb.dev and https://github.com/JohnSully/KeyDB.git/issues

Info

2019 KeyDB User commands