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的寫入速度要快好多。