2016-04-14 15 views
0

MySQL temporäre Tabelle sind im Speicher gespeichert, solange Computer genug RAM hat (und MySQL wurde entsprechend eingerichtet). Man kann beliebige Indizes für beliebige Felder erstellen.Warum haben wir Redis, wenn wir MySQL temporäre Tabellen haben?

Redis speichert Daten im Speicher, die nach einem Schlüssel indiziert sind, und nach meinem Verständnis kann MySQL diesen Job auch erledigen.

Gibt es irgendwelche Dinge, die Redis zum Speichern großer Mengen (100-200.000 Zeilen) flüchtiger Daten besser machen? Ich kann nur das Aussehen von Redis erklären, dass nicht jedes Projekt mysql enthält und wahrscheinlich andere Datenbanken keine temporären Tabellen unterstützen.

Wenn ich bereits MySql in meinem Projekt habe, macht es Sinn Redis zu akzeptieren?

+0

Hängt von Ihren Geschwindigkeitsanforderungen ab. Redis wird wahrscheinlich mit einer angemessenen Marge schneller sein. –

+0

Es ist ein sehr praktischer Schlüsselwertspeicher für Datenstrukturen im Vergleich zu einer relationalen Datenbank. Eine Tabelle erfordert weiterhin Abfragen, Interpretation, die Speicher-Engine und alles, was mit den Schreib- und Lesevorgängen der indizierten Werte der Tabelle (n) verbunden ist. Redis ist ein Schlüsselwertspeicher, der Schlüssel kann von einem bekannten Wert bis zu einem Hash-Wert reichen. Sie können den Wert dann direkt über seinen angenommenen Schlüssel anfordern, ohne eine Abfrage anzuwenden. Eine Suche findet immer noch statt, aber nicht im selben Sinne wie MySql. Ich habe redis für Apps im Maßstab verwendet, um Sitzungen zu speichern und über viele Instanzen von Webservern und Datenbanken zwischenzuspeichern. –

Antwort

2

Redis ist wie mit Indizes direkt arbeiten. Es gibt keine ACID, SQL-Parser und viele andere Dinge zwischen Ihnen und den Daten.

Es bietet einige grundlegende Datenstrukturen und sie sind speziell optimiert, um im Speicher gehalten zu werden, und sie haben auch spezielle Operationen, um sie zu lesen und zu ändern.

In der anderen Seite ist Redis nicht-Abfragedaten entwickelt (aber Sie können mit SORT, SCAN, Kreuzungen und andere Operationen sehr leistungsfähige und hochperformante Filter implementieren) sondern speichern die Daten, wie Sie werden später konsumiert werden. Wenn Sie beispielsweise Kunden nach 3 verschiedenen Kriterien sortiert haben möchten, müssen Sie 3 verschiedene sortierte Sätze ausfüllen. Es gibt viele Anwendungsfälle mit anderen Datenstrukturen, aber ich würde am Ende ein Buch in einer Antwort schreiben ...

Auch eine der mächtigsten Funktionen in Redis ist, wie einfach kann repliziert werden, und seit seine 3.0-Version unterstützt Data Shard Out-of-the-Box.

Warum Sie Redis anstelle von temporären Tabellen für MySQL (und andere Engines, die sie auch haben) benötigen, bleibt Ihnen überlassen. Sie müssen Ihren Fall studieren und prüfen, ob das Zwischenspeichern oder Speichern von Daten in einem NoSQL-Speicher wie Redis Ihre tatsächliche Herangehensweise übertreffen kann und Ihnen eine elegantere Datenarchitektur bietet.

0

Durch die Verwendung von Redis neben der anderen Datenbank reduzieren Sie effektiv die Belastung. Wenn Redis auf einem anderen Server ausgeführt wird, kann die Skalierung unabhängig für jede Ebene ausgeführt werden.

Verwandte Themen