redis - 使用 REDIS 的集群启用选项启动 YCSB 负载

标签 redis benchmarking ycsb nosql

我正在 Redis 集群上执行 YCSB 基准测试。我已经创建了 redis 集群,并且它在以下条件下工作。

如果我用-c参数指定在redis客户端开启集群模式。 block 已正确移动。

./redis-cli -h -c "host ip" -p "port"

如果我不指定-c参数,它会错误地移动 block

./redis-cli -h "host ip" -p "port"

所以在 YCSB 加载选项中,我不知道如何启用集群选项(-c 参数)。

目前我正在使用以下不带 -c 选项的命令

./bin/ycsb load redis -s -P workloads/workloada -p "redis.host=host ip" -p "redis.port=port" > outputLoad.txt

它返回一个错误。你能帮我解决这个问题吗?

最佳答案

不知道你有没有想过这个问题。

但是基本上如果你想在Redis Cluster上使用YCSB,你需要为YCSB实现一个Redis Cluster Client。它与 YCSB 为 Redis 提供的客户端非常相似。您可以复制并粘贴 Redis(单个实例)并更改 init() 中的代码。使用 maven 配置和编译,然后你可以通过 Redis Cluster Client 运行 YCSB。

更多细节:

因为YCSB使用java,所以需要用到jedis。 jedis 中有一个叫做 JedisCluster 的东西,我们需要使用它来在 YCSB 和 Redis 集群之间建立连接。可以在 jedis github 上找到更多详细信息。

对于 Maven 部分,请记住更改客户端代码文件夹中的 pom.xml,并将客户端模块添加到 YCSB 根文件夹(也是 pom.xml,在 nosql 下)。


值得一提的事情:

我使用 YCSB 对 Redis 集群进行了实验。设置是标准的,没有副本的 4 个节点,8 核机器,8 GB 内存,从另一台机器运行 YCSB,设置相同,有 6 个工作线程。

Redis Cluster 在各个方面都比 Redis Single Instance 慢 3 到 4 倍。 (主要用于阈值比较,不能通过调整 -target 参数来提高吞吐量)

不知道是我的问题还是jedis/jedisCluster/YCSB/Redis Cluster/etc的问题

如果你在Redis集群上成功运行了YCSB,请告诉我结果。我会对你的结果非常好奇。

谢谢

关于redis - 使用 REDIS 的集群启用选项启动 YCSB 负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26793976/

相关文章:

mysql - YCSB 与 mysql 主键的重复条目

linux - YCSB 不适用于 HBase

node.js - 在 Redis 中设置键前缀的正确方法是什么?

java - while(rs.next()) 是否比一系列 rs.absolute() 更快

performance - 如何准确测量 c++ 函数使用的时钟周期?

groovy - 如何对递归函数进行基准测试?

c++ - 在 KV 存储上运行 TPC-C(或 YCSB)基准测试

redis - Web 应用程序在多用户中与 Composer 交互

Redis 删除多个集合中的元素

java - 如何获得每个项目的最新 10 个访问者