php - MySQL 比 Redis 快。我在这里错过了什么吗?

标签 php mysql redis

我一直在考虑在一个使用大量写入的项目中使用 Redis。

所以,在我的服务器上设置好之后,我使用 Predis 创建了一个简单的 PHP 脚本,并带有一个简单的循环来添加记录。我还创建了第二个脚本,它只在使用 PHP 的 MySQLi 的 MySQL 表 (InnoDB) 上执行类似的操作。

我运行了一个 10k 循环、一个 100k 循环和一个 500k 循环,并且 MySQL 每次都击败 Redis。事实上,我添加的记录越多,MySQL 与 Redis 相比就越快。

Redis 周围有很多嗡嗡声(炒作?),我想相信我在这里遗漏了一些东西。

请教育我:)

谢谢!

这是我的 Predis 代码:

for ($i=0; $i<100000; $i++) {
    $predis->set('key'.$i, $i);
}

这是我的 MySQLi 代码:

for ($i=0; $i<100000; $i++) {
    mysqli_query($db, "INSERT INTO test (`key`, `value`) VALUES ('key$i', $i)");
}

最佳答案

将predis与mysqli进行比较是不合适的

mysqli extension - 是扩展名,而 predis是一个 php 客户端库。 IE。而 mysqli 是编译代码,predis 只是普通的 php - extensions are faster .

问题中显示的那种基准主要显示 PHP 代码与扩展相比的性能损失。

同类比较

如果您想比较写入性能 - 您需要与 php redis extension 进行比较.

关于php - MySQL 比 Redis 快。我在这里错过了什么吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13126431/

相关文章:

PHP Mysql查询多项

php - 在分页中保留变量

mysql - 计算mysql中的匹配项

caching - 从 Twitter Streaming API 和 RESTful API 获取的数据是否需要缓存?

php - 服务器 :run Exception There are no commands defined in the "server" namespace

php - MySQL 包含来自另一个表的重复值

php - 在 apache solr 中索引多个实体

django - 如何为 Django 测试模拟 Redis

java - 对于使用 spring-boot 的多模块 Maven 项目,通用模型和实用程序的正确位置

php - 在出现 null 错误时调用成员函数 get()