1. 程式人生 > >redis和kafka的寫效能對比

redis和kafka的寫效能對比

kafka插入程式碼如下所示:

<?php
$conf = new RdKafka\Conf();

$rk = new RdKafka\Producer($conf);
$rk->setLogLevel(LOG_DEBUG);
$rk->addBrokers("127.0.0.1");

$cf = new RdKafka\TopicConf();
// -1必須等所有brokers同步完成的確認 1當前伺服器確認 0不確認,這裡如果是0回撥裡的offset無返回,如果是1和-1會返回offset// 我們可以利用該機制做訊息生產的確認,不過還不是100%,因為有可能會中途kafka伺服器掛掉
$cf->set('request.required.acks', 0);
$topic = $rk->newTopic("test", $cf);

$option = 'huancai';
for ($i = 0; $i < 20; $i++) {
    //RD_KAFKA_PARTITION_UA自動選擇分割槽
    //$option可選
    $topic->produce(RD_KAFKA_PARTITION_UA, 0, "huancai . $i", $option);
}
?>

redis插入程式碼如下所示:

<?php
//echo '999';
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

//$key = 'piao';
//$value = $redis->get($key);
//var_dump($value);
for ($i = 0; $i < 20; $i++) {
    $redis->set("huancai . $i","huancai.$i");
}

?>
10個併發10000個請求ab壓測後kafka的執行效果如下所示:

10個併發10000個請求ab壓測後redis的執行效果如下所示:

從上面壓測結果可以看出,redis比kafka的寫入速度要快好多。