redis和kafka的写性能对比

时间:2024-03-22 08:14:33

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的执行效果如下所示:

redis和kafka的写性能对比

redis和kafka的写性能对比

redis和kafka的写性能对比

10个并发10000个请求ab压测后redis的执行效果如下所示:

redis和kafka的写性能对比

redis和kafka的写性能对比

redis和kafka的写性能对比

从上面压测结果可以看出,redis比kafka的写入速度要快好多。