本文介绍Redis企业版(持久内存型)性能测试的具体方法。

工作负载

测试的总数据量8 GB,数据分布方法为zipfian,具体测试场景如下:

  • Load:100%的写操作。
  • Workload C:100%的读操作。
  • Workload A:50%的更新操作与50%的读操作。

关于Workload的详细介绍,请参见Core Workloads

说明 由于应用场景不同,Set、Zset中的复杂命令无法进行通用测试,您可以根据您的业务场景自行测试。

测试命令

#加载数据
workload=a
./bin/ycsb load redis -s -P workloads/workload${workload} -p "redis.host=${server_ip}" -p  "redis.port=${port}" -p "redis.password=${password}" -p "recordcount=${recordcount}" -p "operationcount=${operationcount}" -p "redis.timeout=30000" -p "redis.command_group=${command_group}" -p "fieldcount=${fieldcount}" -p "fieldlength=${fieldlength}" -threads ${threads}  -p "redis.password=***:*****"

#运行Workload C
workload=c
./bin/ycsb run redis -s -P workloads/workload${workload} -p "redis.host=${server_ip}" -p  "redis.port=${port}" -p "redis.password=${password}" -p "recordcount=${recordcount}" -p "operationcount=${operationcount}" -p "redis.timeout=30000" -p "redis.command_group=${command_group}" -p "fieldcount=${fieldcount}" -p "fieldlength=${fieldlength}" -threads ${threads} -p "redis.password=***:*****"

#运行Workload A
workload=a
./bin/ycsb run redis -s -P workloads/workload${workload} -p "redis.host=${server_ip}" -p  "redis.port=${port}" -p "redis.password=${password}" -p "recordcount=${recordcount}" -p "operationcount=${operationcount}" -p "redis.timeout=30000" -p "redis.command_group=${command_group}" -p "fieldcount=${fieldcount}" -p "fieldlength=${fieldlength}" -threads ${threads} -p "redis.password=***:*****" 
表 1. 参数说明
参数 说明
server_ip Redis实例的IP地址。
port Redis实例的服务端口。
password

根据选取账号的不同,密码的填写格式有一定区别:

  • 默认账号(即以实例ID命名的账号):直接填写密码即可。
  • 新创建的账号:密码格式为<user>:<password>。例如自定义账号为testaccount,密码为Rp829dlwa,密码需填写为testaccount:Rp829dlwa
说明 如果忘记密码,请参见 修改或重置密码
recordcount 数据装载阶段准备的数据量。
operationcount 执行操作的数据量。
command_group 测试的数据结构,本案例中,依次测试下述数据结构:
  • string
  • hash
  • list
  • set
  • zset
fieldcount 字段或元素个数,本案例中,String数据结构配置为1,其他数据结构配置为10。
fieldlength 值长度,根据测试需求配置。
threads YCSB线程数,根据实例规格配置。