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