gpt4 book ai didi

REDIS//Benchmark工具//使用-r 的SET中的键在GET中不匹配

转载 作者:可可西里 更新时间:2023-11-01 10:55:45 24 4
gpt4 key购买 nike

我正在使用基准测试工具和本地 zip 包中包含的 redis-server.exe 测试 Redis(版本:0.8.8.384)。我使用以下命令来测试 keyspace_length:redis-benchmark -t set,get -n 4 -c 1 -d 888 -r 1000

我已经成功地使用 RawCap.exe 在本地捕获了一个示踪剂 (.pcap)。我注意到,SET 命令中发送的 key GET 命令中的 key 匹配。我希望使用的 key 存储在本地某处,然后从 GET 命令中检索以询问每个随 secret 钥的值。

我错过了什么吗?

提前致谢!

最佳答案

似乎这种行为是预期的,因为您只能为 GET 命令运行 redis-benchmark:

redis-benchmark  -t get -n 4 -c 1 -d 888 -r 1000
====== GET ======
4 requests completed in 0.00 seconds
1 parallel clients
888 bytes payload
keep alive: 1

100.00% <= 0 milliseconds
4000.00 requests per second

所以在-t中指定的每个命令都是独立测试的。

编辑

您可以传递一个 lua 脚本来测试同一键中的设置/获取。午餐后研究后的一些想法:)

  • 您可以在执行此操作之前在 redis-cli 上打开 MONITOR 以确保发生了什么。重要提示:这会终止您的基准测试,只需将其设置为使用少量测试查看实际命令(例如 redis-benchmark -n 10);
  • 因为你正在加载一个 lua 脚本,所以每次都会自动执行,就像这些命令在 MULTI/EXEC block 中一样;
  • 您可以通过指定 __rand_int__ 参数 AND -r 1000(例如)锁定一个随机数以供两个命令使用。 -r 参数定义了使用的随机整数的范围。 __rand_int__ WON'T 如果您不指定 -r 参数(您可以在监控时看到);
  • 关闭 MONITOR 后,您可以看到对于更大的 -n 值,模拟似乎更快。尝试使用 -n 10-n 1000 看看这是否成立。
  • 阅读 https://redis.io/topics/benchmarks :)

脚本:

redis-benchmark -r 10000 -n 1000 eval "redis.call('set',KEYS[1],'xpto') return redis.call('get', KEYS[1])" 1 __rand_int__

示例 MONITOR 输出:

1487868918.656881 [0 127.0.0.1:50561] "eval" "redis.call('set',KEYS[1],'xpto') return redis.call('get', KEYS[1])" "1" "000000009355"
1487868918.657032 [0 lua] "set" "000000009355" "xpto"
1487868918.657051 [0 lua] "get" "000000009355"

关于REDIS//Benchmark工具//使用-r <keyspacelen>的SET中的键在GET中不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42392268/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com