Heim > Backend-Entwicklung > PHP-Tutorial > Warum wird die MEMORY-Engine von MySQL nicht so häufig verwendet wie Redis?

Warum wird die MEMORY-Engine von MySQL nicht so häufig verwendet wie Redis?

WBOY
Freigeben: 2016-09-02 08:57:05
Original
1117 Leute haben es durchsucht

Ich sehe, dass viele Leute lieber Redis zum Speichern von Daten in JSON verwenden als die MEMORY-Engine von MySQL. Liegt es an der schlechten Leistung dieser Engine oder an etwas anderem? Ich habe festgestellt, dass einige inländische Open-Source-Projekte diese Engine grundsätzlich nicht verwendet haben.

Antwortinhalt:

Ich sehe, dass viele Leute lieber Redis zum Speichern von Daten in JSON als die MEMORY-Engine von MySQL verwenden würden. Liegt es an der schlechten Leistung dieser Engine oder an etwas anderem? Ich habe festgestellt, dass einige inländische Open-Source-Projekte diese Engine grundsätzlich nicht verwendet haben.

  1. Oft sind die gespeicherten Datenformate komplexer. Es ist bequemer, die Daten im KV-Format zu speichern und sie dann im JSON-Format zu speichern, das einfach zu analysieren ist

  2. Redis ist hinsichtlich der Zuverlässigkeit besser – die Speichertabelle von MySQL verliert nach einem Stromausfall Daten, aber Redis ist besser

Zuallererst: Redis ist mehrere Größenordnungen schneller als MySQL.
Also:
1. Die Datenmenge ist nicht zu groß && Auf die Datenmenge wird häufig zugegriffen, daher ist es besser, sie in Redis abzulegen. Die Datenmenge hier kann sich auf die Speichergröße des Redis-Servers beziehen. Wenn die Datenmenge kleiner ist als die Speichergröße des Redis-Servers, können Sie erwägen, sie in Redis zu übertragen.

2.Der Redis-Zugriff ist einfacher als MySQL.

Lassen Sie uns zunächst etwas über die Speicher-Engine von MySQL lernen

<code>http://dev.mysql.com/doc/refman/5.7/en/memory-storage-engine.html
</code>
Nach dem Login kopieren

Sehen Sie, wie viele Unsupporter es gibt.

Zurück zum Vergleich mit Redis, lassen Sie uns über drei Punkte sprechen

  1. Die Speicher-Engine von MySQL unterstützt das Ablaufdatum nicht. Muss ich es manuell löschen?

  2. Bevor ich Daten speichere, muss ich eine Tabelle erstellen. Was passiert, wenn meine Daten nicht in Zeilen und Spalten vorliegen, sondern ungeordnet sind?

  3. Ist es die JSON-Zeichenfolge, die Sie an das Frontend zurückgeben, oder die serialisierte Modellklasse, die Sie aus der Datenbank entnommen haben? Warum nehme ich dann nicht einfach einen JSON-String von Redis und gebe ihn direkt zurück?

Natürlich kann die Speicher-Engine von MySQL auch das oben Genannte tun, aber der Schmerzindex ist stark gestiegen, was darauf hindeutet, dass sie für die oben genannten Szenarien nicht sehr geeignet ist. Sie können keine Schere zum Holzhacken verwenden, oder? Obwohl es gekürzt werden kann.

Was den tieferen Vergleich der Atomizität 0 - 0 betrifft, denke ich, dass es nicht an der Zeit ist, das Aussehen dieser Sache zu diskutieren, weil Sie die Süße mit bitterer Melone und Apfel vergleichen werden?

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage