Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

एचजीईटी और एचसेट कमांड के लिए रेडिस बेंचमार्किंग

मुझे अभी-अभी redis-benchmark का एहसास हुआ है कमांड बेंचमार्क नहीं करता hSet और hGet आदेश। (मैं 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)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Node.js, (Hi)Redis और मल्टी कमांड

  2. रेडिस रेंज द्वारा फ़िल्टर करें, सॉर्ट करें और पहले 10 लौटाएं

  3. मेमकैच्ड बनाम रेडिस?

  4. रेडिस कतार कार्यकर्ता utcparse में दुर्घटनाग्रस्त हो जाता है

  5. रेडिस - सेम में से किसी एक का नाम बदलने पर विचार करें या spring.main.allow-bean-definition-overriding=true सेट करके ओवरराइडिंग सक्षम करें