为了账号安全,请及时绑定邮箱和手机立即绑定

Redis的插入速度比MySQL慢?

Redis的插入速度比MySQL慢?

PHP
慕妹3242003 2019-03-13 13:31:25
是这样的, 心血来潮, 想测试一下 redis 有多快, 经过我测试, 发现 Redis总是比MySQL慢一点,我想知道是什么原因, 望指教。代码如下: <?php $driver = "redis"; // 测试 mysql 驱动时,打开注释 // $driver = "mysql"; // 插入的条数 const SIZE = 10000; // $t1 = microtime(true); // 为了方便测试,插入的数据是固定的 $name = "test"; $pwd = "####"; $age = 21; if ($driver === 'redis') { $redis = new Redis(); $redis->connect('127.0.0.1', 6379) or die('redis 服务未启动'); $redis->setOption(Redis::OPT_PREFIX,'hash_'); for ($i = 0; $i < SIZE; ++ $i) { // 就用用户名做哈希名,不允许重复用户名 $redis->hSet($i, 'name', $name); $redis->hSet($i, 'pwd', $pwd); $redis->hSet($i, 'age', $age); } $redis->close(); } else { // $dbh = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', 'root'); for ($i = 0; $i < SIZE; ++ $i) { $sql = "insert into `redis_user`(`name`, `pwd`, `age`) values('{$name}', '{$pwd}', '{$age}')"; $dbh->exec($sql); } $dbh = null; } $t2 = microtime(true); /** * 插入 10000 条数据 * 使用 redis 驱动 共插入了 10000 条数据, 时间使用:3.4171187877655 * 使用 mysql 驱动 共插入了 10000 条数据, 时间使用:2.771833896637 * * 插入 100000 条数据 * 使用 redis 驱动 共插入了 100000 条数据, 时间使用:34.385821819305 * 使用 mysql 驱动 共插入了 100000 条数据, 时间使用:18.874236822128 */ echo "使用 {$driver} 驱动 共插入了 {$i} 条数据, 时间使用:" . ($t2 - $t1); 如果是代码上的原因,望指出
查看完整描述

3 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

并非Redis比MySQL慢,而是时间都消耗在网络上了(即便访问本机也占用网络开销的)。

可以试试Redis的multi-set或pipeline功能(一次网络开销写入多条数据),然后跟MySQL的multi-insert相比较。

查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 863 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信