# redis benchmark for java **Repository Path**: ligang_cn/java-benchmark ## Basic Information - **Project Name**: redis benchmark for java - **Description**: java语言的Redis性能测试工具。相比Redis自带的redis-benchmark,可真正实现多线程并发测试,更符合真实使用场景,也能更好的测试服务性能(测试结果优于redis-benchmark)。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2023-07-13 - **Last Updated**: 2025-09-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # redis-benchmark for java工具介绍 ****** Java语言编写的Redis性能测试工具。相比Redis自带的redis-benchmark可真正实现多线程并发测试,更符合真实使用场景,也能更好的测试服务性能(测试结果优于redis-benchmark)。 ## 编译和打包 编译运行软件环境要求: - JDK >= 1.8 - Maven >= 3.0 编译并打包 在项目根目录下执行下面命令,会首先清除旧的编译过程文件,之后会编译打包生成执行用的jar包。 ```bash mvn clean package ``` 执行完成后会在项目的 target/ 目录下找到目标文件 benchmark-1.2.jar。 ## 使用说明 ### 命令和参数说明 编译后输出位jar包,通过java -jar命令来执行测试,下面是命令使用和参数说明。 ```bash java -jar benchmark-1.2.jar [-h host] [-p port] [-a password] [-t thread] [-c cmd] [--time duration] [--range start-stop] -h or --host 访问服务地址 (default 127.0.0.1) -p or --port 访问服务端口 (default 6379) -m or --mode 连接模式, 选项: single, sentinel, cluster (default single) -a or --pass 连接的登录密码 (default null) -n or --mastername sentinel模式是的mastername (default WebSession) -s or --sentinelpassword 连接哨兵的密码 (default null) -t or --thread 并发连接数 (default 30) -d Data size of SET/GET value in bytes (default 246, minimum 1) --time Test run time, in seconds (default 120) --range The slot range of the key (default 0-16383) --client The client type : jedis , redisson , lettuce --number Total number of requests -r or --random Use random keys -c Data type to test, optional values: string, list, set, hash, zset, publish, w1r9, write, read, w1r1, redis(command), stable(7 * 24 stability test), all(include string,list,set,hash,zset,publish), (default string) --command Data type to test, optional values: set,get,scan,del,incr,hset,hget,hgetall,hscan,hdel,lpush,lpop,rpush,rpop,lrange, sort,lrem,sadd,smembers,sscan,srem,spop,sismember,srandmember,zadd,zrange,zrevrange,zunionstore,zinterstore,zscan, zrem,ping,mset,hincrby,hmset,zpopmin,zpopmax --help 显示帮助信息 ``` ### 使用示例 ```bash #执行测试,选项参数意义:主机地址 localhost, 端口 6379, 连接模式 single, 并发客户端 30, 持续时间 60s, 测试类型 string $ java -jar benchmark-*.jar -h localhost -p 6379 -m single -t 30 --time 60 -c string #执行测试,选项参数意义:哨兵地址 localhost, 哨兵端口 26379, 连接模式 sentinel, mastername senti-workers, 并发客户端 40, 持续时间 180s, 测试类型 所有 $ java -jar benchmark-*.jar -h localhost -p 26379 -m sentinel -n senti-workers -t 40 --time 180 -c all #执行测试,选项参数意义:集群地址 localhost, 端口 6379, 连接模式 cluster, 并发客户端 100, 持续时间 120s, 测试类型 set $ java -jar benchmark-*.jar -h localhost -p 6379 -m cluster -t 100 --time 120 -c set #执行测试,选项参数意义:集群地址 localhost,端口 6379,连接模式 cluster,并发客户端 100,持续时间 120s,客户端类型 redisson $ java -jar benchmark-*.jar -h localhost -p 6379 -m cluster -t 100 --time 120 --client redisson #执行测试,选项参数意义:集群地址 localhost,端口 6379,连接模式 cluster,并发客户端 100,持续时间 120s,客户端类型 redisson,测试类型 stable $ java -jar benchmark-*.jar -h localhost -p 6379 -m cluster -t 100 --time 120 --client redisson -c stable #执行测试,选项参数意义:主机地址 localhost, 端口 6379,数据长度 100,执行次数 10000 $ java -jar benchmark-*.jar -h localhost -p 6379 -d 100 --number 10000 #执行测试,选项参数意义:执行次数 number, 使用随机key r/random $ java -jar benchmark-*.jar -h localhost -p 6379 --number 100000 --random #执行测试,选项参数意义:选择redis-benchmark, 执行指定的redis命令 $ java -jar benchmark-*.jar -h localhost -p 6379 -c redis --command set,get,del ```