Ich würde gerne wissen, ob Memcache empfohlen wird, wenn Sie eine NoSQL-Datenbank wie mongoDB verwenden.Wird Memcache bei der Verwendung von MongoDB empfohlen?
Antwort
Das Konzept memcache des Verwendens von der Idee stammt, die Sie haben „extra RAM "irgendwo rumsitzen. Sowohl MongoDB als auch MySQL (und die meisten DBs) nehmen jeden Megabyte RAM, den sie bekommen können.
Im Fall des sehr häufigen MySQL/Memcache ist es sehr gut dokumentiert, dass die Verwendung von Memcache mehr dazu dient, die Abfragebelastung auf dem Server zu reduzieren als die Beschleunigung von Abfragen. Eine gute Memcache-Implementierung versucht im Grunde nur die gebräuchlichsten Daten im Speicher zu halten, so dass der Datenbankserver auf größeren Datenmengen zugreifen kann.
In der Tat ist es meine Erfahrung, dass Verwendung von memcache wird im Allgemeinen ein Vertrauen auf memcache Systemleistung aufrechtzuerhalten.
Also zurück zur ursprünglichen Frage, wo hast du extra RAM?
Wenn Sie über zusätzlichen RAM auf Webservern verfügen, können Sie Memcache möglicherweise verwenden. Natürlich können Sie Mongo auch lokal auf dem Webserver ausführen. Stellen Sie einfach die Daten, die Sie benötigen, vom Master bereit.
Wenn Sie auf anderen Computern über zusätzlichen Arbeitsspeicher verfügen, ist die Verwendung von Memcache nicht wirklich sinnvoll. Fügen Sie einfach weitere Knoten zu Ihrem MongoDB-Replikat-Set oder Shard hinzu. Hier glänzt MongoDB. Aufgrund von Sharding/Replikation können Sie Mongo horizontal mehr RAM hinzufügen, um die Leistung zu erhöhen. Mit SQL ist es sehr schwierig "nur weitere Server hinzuzufügen", da Joins nicht sehr gut skaliert werden können. Aber mit Mongo ist es durchaus möglich, einem Problem einfach "mehr Knoten hinzuzufügen".
Zuerst nein. Wenn später Leistungsprobleme auftreten, fügen Sie eine Cache-Ebene (Memcache) hinzu. Aber Sie werden nichts gewinnen, wenn Sie beispielsweise Redis verwenden, da Redis bereits alles im Speicher speichert.
MongoDB speichert sowieso alles im Speicher und arbeitet auf ähnliche Weise, da es ein auf Schlüsselwerten basierendes System ist. Ich glaube jedoch, dass MongoDB flexibler ist, da es BSON-Objekte in sich speichern kann.
(Nur zur Klarstellung, MongoDB verwendet BSON, eine spezielle Form von JSON, für alle seine Daten zu speichern, die Objekte innerhalb von Objekten enthält.)
Die Antwort hängt von Ihren Anwendungsfällen ab.
Im Allgemeinen ist der Zugriff auf RAM um Größenordnungen schneller als der Zugriff auf die Festplatte.
Selbst die schnellsten SSD-Laufwerke sind etwa 100 Mal langsamer als RAM.
Nun, ich weiß nicht, ob Mongo ein Caching-System an Ort und Stelle hat (wahrscheinlich ist es), oder was die Räumungsrichtlinie ist, aber als Programmierer würde ich einen Cache bevorzugen, wo ich speichern/abrufen und löschen kann Artikel nach Belieben. Daher würde ich lieber eine Caching-Lösung auch mit Mongo verwenden.
Zusammenfassend hängt es wirklich davon ab, wofür Sie diese Lösungen verwenden. Es gibt keine eindeutige Antwort auf alle möglichen Anwendungen.
- 1. Wird die Verwendung des Mediatormusters empfohlen?
- 2. MongoDB: Sortieren von Daten bei der Verwendung von DBcollection Suche
- 3. Warum wird die Verwendung der Direktive in C++ nicht empfohlen?
- 4. Wird die Verwendung von GCE als Webserver empfohlen?
- 5. Verwendung von Cassandra anstelle von Memcache?
- 6. Fehler bei der Verwendung von SimplePHPUnit Package
- 7. GAE Initialisierung empfohlen Praxis
- 8. Verwenden von Memcache als Sitzungsspeicher?
- 9. Fehler bei der Verwendung eines Textindex auf Mongodb
- 10. Memcache - gelöscht Werte von memcache wieder auftaucht
- 11. Wird die Verschlüsselung von Javascript empfohlen?
- 12. Datei wird bei Verwendung von saveAsNewAPIHadoopFile überschrieben
- 13. Vorteile der Verwendung von directoryperdb in MongoDB
- 14. bei der Verwendung von EditorFor
- 15. Fehler bei der Installation von MongoDB
- 16. Verwendung von Embedded MongoDB bei Spring Boot Integrationstests
- 17. allowDiscUse bei Verwendung von Jongo
- 18. Bildzeichnungsproblem bei der Verwendung von CGContext. Bild wird horizontal gespiegelt
- 19. Wie wird das Datumsformat bei der Verwendung von pandas.to_csv angegeben?
- 20. Seitenänderung wird nicht in angularjs bei der Verwendung von routeProvider
- 21. Führende Null wird bei der Verwendung von ExportTo-Csv-Cmdlet
- 22. Befehl ausgeführt wird, nicht bei der Verwendung von Java
- 23. Welcher PyPy Speicherprofiler wird empfohlen?
- 24. Sicherheitsprobleme bei der Verwendung von Composer Installation in der Produktionsumgebung
- 25. Warum HibernateTemplate nicht empfohlen wird?
- 26. Wie wird die Verwendung von Win32-APIs für eine kommerzielle Anwendung empfohlen?
- 27. MongoDB SECONDARY wird bei Nacht wiederhergestellt
- 28. Welcher Wert wird bei der Verwendung der MOV-Anweisung zugewiesen?
- 29. So organisieren Sie Fixtures bei der Verwendung von Pytest
- 30. MongoDB $ lookup: Einschränkungen & Verwendung
Diese Funktion macht mich wie mongoDB mehr als andere Schlüssel-Wert-Datenbanken :) –
Diese Antwort ist ungenau, MongoDB ist kein Schlüssel-Wert-Speicher und es enthält nicht alles im RAM, es maps zu Virtual Memory, die ziemlich ist anders. – Sammaye