Usage: valkey-benchmark [OPTIONS] [COMMAND ARGS...] Options: -h Server hostname (default 127.0.0.1) -p Server port (default 6379) -s Server socket (overrides host and port) -a Password for Valkey Auth --user Used to send ACL style 'AUTH username pass'. Needs -a. -u Server URI on format valkey://user:password@host:port/dbnum User, password and dbnum are optional. For authentication without a username, use username 'default'. For TLS, use the scheme 'valkeys'. -c Number of parallel connections (default 50). Note: If --cluster is used then number of clients has to be the same or higher than the number of nodes. -n Total number of requests (default 100000) -d Data size of SET/GET value in bytes (default 3) --dbnum SELECT the specified db number (default 0) -3 Start session in RESP3 protocol mode. --threads Enable multi-thread mode. --cluster Enable cluster mode. If the command is supplied on the command line in cluster mode, the key must contain "{tag}". Otherwise, the command will not be sent to the right cluster node. --enable-tracking Send CLIENT TRACKING on before starting benchmark. -k 1=keep alive 0=reconnect (default 1) -r Use random keys for SET/GET/INCR, random values for SADD, random members and scores for ZADD. 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. Note: If -r is omitted, all commands in a benchmark will use the same key. -P Pipeline requests. Default 1 (no pipeline). -q Quiet. Just show query/sec values --precision Number of decimal places to display in latency output (default 0) --csv Output in CSV format -l Loop. Run the tests forever -t Only run the comma separated list of tests. The test names are the same as the ones produced as output. The -t option is ignored if a specific command is supplied on the command line. -I Idle mode. Just open N idle connections and wait. -x Read last argument from STDIN. --seed Set the seed for random number generator. Default seed is based on time. --tls Establish a secure TLS connection. --sni Server name indication for TLS. --cacert CA Certificate file to verify with. --cacertdir Directory where trusted CA certificates are stored. If neither cacert nor cacertdir are specified, the default system-wide trusted root certs configuration will apply. --insecure Allow insecure TLS connection by skipping cert validation. --cert Client certificate to authenticate with. --key Private key file to authenticate with. --tls-ciphers Sets the list of preferred ciphers (TLSv1.2 and below) in order of preference from highest to lowest separated by colon (":"). See the ciphers(1ssl) manpage for more information about the syntax of this string. --tls-ciphersuites Sets the list of preferred ciphersuites (TLSv1.3) in order of preference from highest to lowest separated by colon (":"). See the ciphers(1ssl) manpage for more information about the syntax of this string, and specifically for TLSv1.3 ciphersuites. --help Output this help and exit. --version Output version and exit. Examples: Run the benchmark with the default configuration against 127.0.0.1:6379: $ valkey-benchmark Use 20 parallel clients, for a total of 100k requests, against 192.168.1.1: $ valkey-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: $ valkey-benchmark -t set -n 1000000 -r 100000000 Benchmark 127.0.0.1:6379 for a few commands producing CSV output: $ valkey-benchmark -t ping,set,get -n 100000 --csv Benchmark a specific command line: $ valkey-benchmark -r 10000 -n 10000 eval 'return redis.call("ping")' 0 Fill a list with 10000 random elements: $ valkey-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.