Heim > Datenbank > Redis > Hauptteil

Der Unterschied zwischen es und redis

藏色散人
Freigeben: 2022-05-13 12:04:45
Original
19885 Leute haben es durchsucht

Der Unterschied zwischen es und redis

Der Unterschied zwischen es und redis

ElasticSearch

Kursempfehlung→: "Elasticsearch Full Text Search Practical Combat" (Praktisches Video)

Aus dem Kurs "Ten Million Level Data Concurrency Solution ( Theorie + praktischer Kampf) 》

Im Vergleich zu MongoDB und Redis ist ES, das ein Jahr später veröffentlicht wurde, vielleicht weniger bekannt, der Ruf von ES im Suchmaschinenbereich jedoch definitiv durchschlagend. Im Vergleich zu anderen High-End-Datenbankprodukten hat ES einen viel bescheideneren Hintergrund.

Der Schöpfer von ES, Shay Banon, war einst ein arbeitsloser Programmierer. Als er nichts zu tun hatte, gründete er ES, um seiner Frau die Suche nach Rezepten zu erleichtern (damals hieß es natürlich noch nicht ES). . Unerwarteterweise wurde durch unbeabsichtigtes Eingreifen die heute beliebteste Suchmaschinendatenbank erstellt. Es stellt sich heraus, dass Mädchen die größte Motivation für die Arbeit von Programmierern sind!

ES hat auch ein eigenes Elastic-Unternehmen gegründet und Hunderte Millionen Dollar an Finanzmitteln erhalten. Shay Banon, der damalige Verlierer-Programmierer, hat bereits den Gegenangriff zum CEO unternommen und den Höhepunkt seines Lebens erreicht. Programmierer, nachdem Sie diese Geschichte gelesen haben, haben Sie sich schon einmal den Tag vorgestellt, an dem Sie CEO werden und Bai Fumei heiraten?

Die Funktion von ES ist, wie der Name schon sagt, die Suche. Streng genommen ist ES keine Datenbank, sondern eine Suchmaschine, und alle Aspekte von ES sind auf die Suche ausgerichtet. ES unterstützt die Volltextsuche. Hier ist eine kurze Erklärung, was Volltextsuche ist: Für Daten wie „Ich arbeite in einem Internetunternehmen in Peking“, wenn Sie nach den Schlüsselwörtern „Peking“, „Internet“ und „ Arbeit“, können Sie hier klicken. Wenn ein Datenelement vorhanden ist, handelt es sich um eine Volltextsuche. Baidu und Google, die Sie täglich verwenden, sind Volltextsuchen.

Es ist erwähnenswert, dass die Volltextsuche von ES auch Chinesisch gut unterstützt (es gibt allein viele chinesische Wortsegmentierer), was definitiv die Volltextsuchbedürfnisse der meisten Menschen in China erfüllen kann. Zusätzlich zur Suche indiziert ES automatisch alle Felder, um eine leistungsstarke komplexe Aggregationsabfrage zu erzielen. Solange die Daten in ES gespeichert sind, können Sie unabhängig von der Komplexität der Aggregationsabfrage eine gute Leistung erzielen Sie müssen sich keine Gedanken mehr darüber machen, wie Sie verschiedene komplexe Indizes erstellen.

Glauben Sie, dass ES nach so vielen Vorteilen von ES nahezu allmächtig ist?

Leider weist ES auch viele Mängel auf. Die offensichtlichsten sind, dass Feldtypen nicht geändert werden können, eine geringe Schreibleistung und ein hoher Hardware-Ressourcenverbrauch. Wie bereits erwähnt, erstellt ES automatisch Indizes für Sie. Obwohl dies viele Vorteile für die Volltextsuche und aggregierte Abfragen mit sich bringen kann und Ihnen die Mühe beim Erstellen von Indizes erspart, bringt diese Funktion auch viele Probleme mit sich.

ES muss die Zuordnung im Voraus festlegen, bevor die Zuordnung die Typinformationen für jedes Feld enthält. ES muss geeignete Indizes für die Felder erstellen. Aufgrund der Existenz dieser Zuordnung kann der Typ eines Felds in ES nach seiner Erstellung nicht mehr geändert werden.

(Sie haben beispielsweise vergessen, die Volltextsuche zu einem Feld in der von Ihnen erstellten Datentabelle hinzuzufügen. Sie möchten sie vorübergehend hinzufügen, aber die Tabelle wurde bereits erstellt und enthält viele Daten. Was Sollten Sie dies zu diesem Zeitpunkt tun? Nein. Leider können Sie nur die gesamte Datentabelle löschen und erneut erstellen.

Daher ist ES in Bezug auf die Flexibilität der Datenstruktur höher als MySQL, aber MongoDB weit unterlegen. Die Mängel von ES beschränken sich nicht nur auf diese, sondern wirken sich auch auf die Schreibleistung von ES aus, die deutlich geringer ist als die von MongoDB.

Für die gleichen Daten ist der von ES belegte Speicherplatz deutlich größer als der von MongoDB (können Sie so viele Indizes erstellen, ohne Platz zu beanspruchen?), und der Verbrauch von Hardwareressourcen ist ebenfalls sehr hoch, 64G Speicher + SSD für große Datenmengen Es ist grundsätzlich Standard und kann als aristokratischer Dienst in der Datenbank angesehen werden. Wenn Ihr Chef also sehr geizig ist, sollten Sie bei der Auswahl von ES vorsichtig sein!

Die Volltextsuchfunktion von ES macht es zu einem leistungsstarken Tool zum Erstellen von Suchmaschinen. Darüber hinaus unterstützt ES komplexe Aggregationsabfragen sehr gut. Durch diese Funktion eignet sich ES auch sehr gut für die Datenanalyse.

Tatsächlich hat ES auch speziell eine eigene ELK-Suite entwickelt, um Ihnen einen Komplettservice von der Protokollerfassung bis zur Datenvisualisierungsanalyse zu bieten. Es handelt sich definitiv um ein leistungsstarkes Tool zum Aufbau einer High-End-Datenanalyseplattform .

Die Nachteile der hohen Kosten und der geringen Schreibleistung von ES machen es jedoch auch ungeeignet für den Einsatz in Szenarien, in denen der Datenwert nicht hoch ist, Schreibleistung erforderlich ist, das Datenvolumen groß ist und die Kosten begrenzt sind . .

Redis

Redis ist derzeit die beliebteste Schlüsselwertdatenbank. Es wurde 2009 zusammen mit MongoDB veröffentlicht und ist ebenfalls ein Meisterwerk der Datenbanken im frühen Big-Data-Zeitalter.

Das größte Merkmal von Redis ist natürlich die Einfachheit und hohe Leistung, die die Schlüsselwertspeicherung mit sich bringt. Die sogenannte Schlüsselwertspeicherung bedeutet, dass jeder Datensatz nur einen Schlüssel zum Abfragen von Daten und den entsprechenden Wert zum Speichern von Daten enthält, genau wie Hausnummern und Einwohner im wirklichen Leben, ohne dass herkömmliche Datenbanken wie Tabellen und Felder komplexe Konzepte enthalten sind in erforderlich, alle Abfragen basieren nur auf Schlüsselwerten.

Daher kann man sagen, dass die Schlüsselwertdatenbank die einfachste Datenstruktur in der Datenbank ist und Redis alle Daten in den Speicher lädt und Schreibleistung herkömmlicher Datenbanken wie MongoDB. Natürlich ist die Funktion von Redis nicht nur so einfach wie die Speicherung von Schlüsselwerten im Vergleich zu seinem Schlüsselwert-Vorgänger Memcached. Redis unterstützt auch Datenpersistenz, verschiedene Datenstrukturen wie Liste und Satz, Master-Slave-Replikation und Sicherung Daher ist Redis definitiv die umfassendste und am einfachsten zu verwendende Schlüsselwertdatenbank.

Der Schlüsselwertspeicher von Redis bringt Leistungsvorteile, bringt aber auch viele Einschränkungen bei komplexen Abfragen mit sich. Da wichtige Funktionen wie Datentabellen und -felder entfallen und alle Abfragen auf Schlüsseln basieren, kann Redis keine komplexen Abfragefunktionen wie mehrspaltige Abfragen und Abschnittsabfragen bereitstellen, über die herkömmliche Datenbanken verfügen.

Da Redis Daten im Speicher speichern muss, schränkt dies gleichzeitig auch die Datenmenge, die Redis speichern kann, erheblich ein, was auch dazu führt, dass Redis in Anwendungsszenarien mit großen Datenmengen schwierig zu verwenden ist.

Redis opfert Funktionen wie Datentabellen und komplexe Abfragen in herkömmlichen Datenbanken im Austausch für große Leistungsverbesserungen. Es eignet sich besonders für diejenigen, die extrem hohe Anforderungen an die Lese- und Schreibleistung haben und über einfache Datentabellenstrukturen verfügen (Schlüssel). -value, list, set usw.) sind die Abfragebedingungen ebenfalls einfache Anwendungsszenarien.

Wenn Ihre Datentabellenstruktur recht komplex ist und Sie häufig komplexe Abfragevorgänge ausführen müssen, sollten Sie sich besser an MongoDB oder SQL halten.

Weitere Informationen zu Redis finden Sie in der Spalte Tutorial zur Redis-Nutzung!

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen es und redis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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