Frage

Wir brauchen eine Caching-Lösung, die im wesentlichen Daten (Textdateien), Caches überall von 3 Tagen bis zu einer Woche basierend auf Benutzervorgaben und Kriterien. In diesem Fall Speicher basierten Caching macht keinen Sinn für uns. Wir waren zu memcachedb bezeichnet aber ich dachte auch an einigen NO SQL-Lösungen.

Unser aktuelle Anwendung verwendet RDMS (MYSQL) und ich denke, es macht Sinn Reiz memcachedb jedoch NoSQL tut zu verwenden, da es etwas mehr auf dem Horizont ist. Allerdings haben wir keine Produktionsebene Anwendung unter NoSQL und die Beta-Sachen regeln und nicht mit dem Management / Investoren eingesetzt. Jeder, wie, was sind Ihre Gedanken und wie würden Sie es ansprechen?

Danke

War es hilfreich?

Lösung

CouchDB und MongoDB sind beide großen Datenbanken, aber sie sind schrecklichen Entscheidungen für eine Cache-Schicht auf der Oberseite Ihres vorhandenen RDBMS. Neben der Tatsache, dass sie immer noch ziemlich unreif sind, sie nicht den Zweck überhaupt gerecht wird. Auch Geschwindigkeit weise würden Sie besser dran ohne Cache-Ebene gehen als die Verwendung von CouchDB oder MongoDB - sie sind beide langsamer für einfache Lese- / schreibt als auch MySQL. Ja, die NoSQL-Datenbanken sind „cool“, aber das bedeutet nicht, dass Sie sie für etwas verwenden, sollten sie nicht gedacht waren, zu tun.

ich mit Memcached gehen würde, da es nur um die schnellste und leichteste Sache werden Sie feststellen, und es ist gut bekannt und gut unterstützt.

Andere Tipps

Wenn Sie über die Beschwerde an das Management und die Anleger besorgt sind, und das aktuelle System (Sie erwähnen, MySQL) funktioniert, warum würden Sie ändern? Sie sind von einem relativ stabilen Projekt Projekte noch in der Beta zu bewegen, und was Wert addieren Sie, wenn das derzeitige System bereits funktioniert?

Wie oben erwähnt, sind alle CouchDB Ressourcen enthalten etags.

Was nicht erwähnt ist, dass Sie setzen können jeder HTTP-Caching-Lösung vor CouchDB und es haben Sie etag basiertes Caching. Auf diese Weise können Lack verwenden, nginx, was Sie wollen.

Ich würde auch einen Blick auf Cassandra ( http://cassandra.apache.org/ ). Ich habe versucht, memcachedb und CouchDB, irgendwie fand Cassandra ansprechende (Keine Ahnung über PHP, da ich mit Coldfusion arbeiten). Hier verwandte Frage Cassandra PHP-Modul

CouchDB hat bereits einige Caching: wenn Sie ein Dokument erhalten, sendet der Server auch die HTTP-Header ETag (es ist das gleiche wie das Dokument Revision in CouchDB).

Das nächste Mal, fragt der Browser für das gleiche Dokument, um es der Etag empfangen sendet. Wenn das Dokument wurde der Server antwortet mit dem HTTP-Code nicht geändert 304 nicht geändert und Ihr Browser das Dokument aus dem lokalen Cache abgerufen werden.

Wenn Sie jedoch für verschiedene Zeiten auf Cache-Dateien haben, basierend auf Benutzereinstellungen, auch wenn die Textdatei ändert, wahrscheinlich die beste Wahl ist benutzerdefinierten Code zu schreiben, der den approriate HTTP-Caching-Header sendet, basierend auf den Benutzereinstellungen.

Der Vollständigkeit halber eine weitere gute Option ist Redis . Sie erhalten eine Leistung vergleichbar mit Memcache aber Redis unterstützt auch verschiedene Datenstrukturen (Hashes, Listen, Set, sortiert Sets) und atomare Operationen.

Wenn Sie mit Ausdauer Memcached, sollten Sie Redis überprüfen. Es verfügt über alle memecached Funktionalität (und mehr) zusammen mit Beharrlichkeit.

Ich habe es selbst nicht ausprobiert, aber ich erinnere mich zu lesen, dass Redis auch als auch die Memcached API unterstützt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top