Redis对Hget和HSet命令的基准测试

我找不到带redis的HGET,HSET(哈希表命令)基准标记的示例。任何示例或资源都将对此有用。

回答:

我只是意识到redis-benchmark命令没有基准hSethGet命令。(我正在使用v2.8.5)

您可以做的是编写一个小程序来对性能进行基准测试:

<?php

$redis = new Redis();

$redis->pconnect("127.0.0.1");

$count = 10000;

$start_t = microtime(true);

for ($i = 1; $i < $count; $i++) {

$redis->hSet("h{$i}", 'f', $i);

}

$end_t = microtime(true);

echo "Time taken for hSet = " . round(1000 * ($end_t - $start_t)) . "ms (for " . number_format($count) . " keys)\n";

$start_t = microtime(true);

$pipeline1 = $redis->pipeline();

for ($i = 1; $i < $count; $i++) {

$pipeline1->hSet("h{$i}", 'f', $i);

}

$result2 = $pipeline1->exec();

$end_t = microtime(true);

echo "Time taken for hSet (bulk) = " . round(1000 * ($end_t - $start_t)) . "ms (for " . number_format($count) . " keys)\n";

$start_t = microtime(true);

for ($i = 1; $i < $count; $i++) {

$redis->hGet("h{$i}", 'f');

}

$end_t = microtime(true);

echo "Time taken for hGet = " . round(1000 * ($end_t - $start_t)) . "ms (for " . number_format($count) . " keys)\n";

$start_t = microtime(true);

$pipeline2 = $redis->pipeline();

for ($i = 1; $i < $count; $i++) {

$pipeline2->hGet("h{$i}", 'f');

}

$result2 = $pipeline2->exec();

$end_t = microtime(true);

echo "Time taken for hGet (bulk) = " . round(1000 * ($end_t - $start_t)) . "ms (for " . number_format($count) . " keys)\n";

$start_t = microtime(true);

$pipeline3 = $redis->pipeline();

for ($i = 1; $i < $count; $i++) {

$pipeline3->hDel("h{$i}", 'f');

}

$result3 = $pipeline3->exec();

$end_t = microtime(true);

echo "Time taken for hDel (bulk) = " . round(1000 * ($end_t - $start_t)) . "ms (for " . number_format($count) . " keys)\n";

在我的测试服务器上,结果如下:

$ php redis/benchmark_redis.php Time taken for hSet = 557ms (for 10,000 keys)

Time taken for hSet (bulk) = 51ms (for 10,000 keys) Time taken for hGet =

483ms (for 10,000 keys) Time taken for hGet (bulk) = 43ms (for 10,000 keys)

Time taken for hDel (bulk) = 49ms (for 10,000 keys)

以上是 Redis对Hget和HSet命令的基准测试 的全部内容, 来源链接: utcz.com/qa/425745.html

回到顶部