MySQL ist schneller als Redis. Bin ich hier etwas fehlt?

Habe ich seit der Prüfung mit Redis in einem Projekt, das mit viel schreibt.

So, nach der Einrichtung auf meinem server, habe ich eine einfache PHP-Skript mit Predis mit einer einfachen Schleife zum hinzufügen von Datensätzen. Ich habe auch ein zweites Skript, das eine ähnliche Sache, nur auf eine MySQL-Tabelle (InnoDB) mit Hilfe von PHP-MySQLi.

Ich lief ein 10 K-Schleife, ein 100k-Schleife und eine Schleife 500k und MySQL-beat Redis jede einzelne Zeit. In der Tat, je mehr Datensätze Hinzugefügt habe, die schneller MySQL war im Vergleich zu Redis.

Es gibt so viel Begeisterung (hype?) um Redis, ich möchte glauben, ich bin hier etwas fehlt.

Bitte klärt mich auf 🙂

Dank!

Hier ist meine Predis-code:

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

Hier ist meine MySQLi-code:

for ($i=0; $i<100000; $i++) {
    mysqli_query($db, "INSERT INTO test (`key`, `value`) VALUES ('key$i', $i)");
}
  • nur weil redis ist buzzword-kompatibel, nicht-sqlish bedeutet nicht, dass es schnell ist.
  • Ist es möglich, dass Ihr nicht die Art, wie die Datenbank darauf reagiert, aber die Art und Weise, die von php verarbeitet die Einfügemarke?
  • Tut Redis halten, ein automatischer index? Hat deine MySQL-Tabelle über einen index? Macht Sie sicher, dass Sie das gleiche verglichen hat. Indizes langsam nach unten einfügt, aber erheblich verbessern, heißt es.
  • siehe Die noSQL-Datenbank ist am besten für high-volume-Einsätze / schreibt? auch stackoverflow.com/questions/3010224/...
  • Vielleicht etwas zu tun mit: 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.
  • Vielleicht sollten Sie zunächst überprüfen, ob Ihr code das tut, was Sie denken, es tut, bevor voreilige Schlüsse zu ziehen. Einige user waren so nett und zeigte mit dem finger auf Sie, reparieren Sie bitte Ihre Frage. In seiner aktuellen form ist es weit Weg von konstruktiv. - xdebug.org/docs/profiler
  • Achtung devops: "lernen NoSQL" ist nicht dasselbe wie "lernen kein SQL"!
  • Es ist ein Fehler im benchmark-code, aber es ist ein benchmark. Ich sehe nicht die Notwendigkeit, bully/Spott des Autors.
  • Ja, der Witz ist lustig, aber @tuki Verdienst für die am wenigsten Aufwand zu testen. Viele Menschen machen die Technologie-Entscheidungen ohne Prüfung.

InformationsquelleAutor Ran Aroussi | 2012-10-29
Schreibe einen Kommentar