【问题标题】:MySQL is faster than Redis. Am I missing something here? [closed]MySQL 比 Redis 快。我在这里错过了什么吗? [关闭]
【发布时间】:2012-10-19 01:13:26
【问题描述】:

我一直在考虑在一个使用大量写入的项目中使用 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)");
}

【问题讨论】:

  • redis 通过 no-sqlish 符合流行语并不意味着它会很快。
  • 可能与:Redis is a single-threaded server. It is not designed to benefit from multiple CPU cores. People are supposed to launch several Redis instances to scale out on several cores if needed. It is not really fair to compare one single Redis instance to a multi-threaded data store.
  • 基准代码中有一个错误 - 但一个基准。我认为没有必要欺负/嘲笑作者。
  • 是的,这个笑话很有趣,但@tuki 值得称赞的是至少努力测试。很多人在没有测试的情况下做出技术选择。

标签: php mysql redis


【解决方案1】:

比较predis和mysqli是不合适的

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

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

比较喜欢和喜欢

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

【讨论】:

  • 所以...我已经安装了(本机?)php redis extention,Redis 结果在 10k 插入时比 mysql 快 6 倍,在 50k 插入时比 mysql 快 3 倍,在500k 插入。似乎插入越多,差异就越小。谢谢!
  • ...然后有事务.....我可以使用 Mysql/InnoDb- 开箱即用每秒进行 5k 写入。 Redis 不能碰这个。我看到使用 Redis 的唯一优势是将它用于频繁访问/写入的数据对象,例如会话,以​​释放 Mysql 的连接。 Redis 和 Mysql 可以很好地协同工作。可扩展的持久存储没有独立的赢家或解决方案。
  • 哈希表增长问题。
猜你喜欢
  • 2012-11-23
  • 1970-01-01
  • 2017-11-12
  • 1970-01-01
  • 2017-06-07
  • 1970-01-01
  • 2016-11-01
  • 1970-01-01
  • 2016-02-16
相关资源
最近更新 更多