Frage

Ich habe noch nie einen solchen Cache verwendet. Das Problem ist, dass ich 500.000 Datensätze aus einer Datenbank laden und einige Wicked Faste aus auswählen/filtern.

Ich denke darüber nach, einen Cache zu verwenden und vorläufig gefunden zu haben Ehcache und Oscache, irgendwelche Meinungen?

War es hilfreich?

Lösung

Sie sind beide ziemlich solide Projekte. Wenn Sie ziemlich grundlegende Caching -Bedürfnisse haben, wird einer von ihnen wahrscheinlich ebenso wie der andere funktionieren.

Möglicherweise möchten Sie auch in Betracht ziehen, die Filterung in einer Datenbankabfrage durchzuführen, wenn sie machbar sind. Durch die Verwendung einer abgestimmten Abfrage, die ein kleineres Ergebnissatz zurückgibt, erhalten Sie häufig eine bessere Leistung als das Laden von 500.000 Zeilen in den Speicher und filtern Sie sie dann.

Andere Tipps

Nach ihren zu beurteilen Veröffentlichung Seite, Der Oscache wurde seit 2007 nicht aktiv aufrechterhalten. Dies ist keine gute Sache. Ehcache hingegen steht in ständiger Entwicklung. Allein aus diesem Grund würde ich EHCache wählen.

Bearbeiten Sie Nov 2013: Oscache ist wie der Rest von OpenSymphony tot.

Ich habe JCs verwendet (http://jakarta.apache.org/jcs/) und es scheint solide und einfach zu verwenden, programmatisch zu verwenden.

Es hängt von Ihren Bedürfnissen ab. Wenn Sie die Arbeit im Speicher an einem Computer erledigen, funktioniert EHCache perfekt, vorausgesetzt, Sie haben genug RAM oder eine schnelle Festplatte, sodass der Überlauf keine Festplatte Paging/Thrashing verursacht. Wenn Sie feststellen, dass Sie eine Skalierbarkeit erzielen müssen, trotz dieser bestimmten Operation, die viel stattfindet, möchten Sie wahrscheinlich Clustering durchführen. JGroups /Treecache von JBoss unterstützen dies auch. Diese Antwort spricht nicht direkt auf die Vorzüge von EHCache und Oscache aus (zumindest an einem Punkt) etwas mehr Funktionen zu haben, aber ich denke, dass mit den oben genannten Optionen diese Vorteile motiviert/ersetzt werden. Ah, das andere, was ich vergessen habe zu erwähnen, ist, dass die Transaktionalität der Daten wichtig ist und Ihre Anforderungen die Liste der gültigen Auswahlmöglichkeiten verfeinern.

Wählen Sie einen Cache aus, der JSR 107 entspricht, was Ihren Job erleichtert, wenn Sie von einer Implementierung zur anderen migrieren möchten. Um sich auf die Frage zu befassen, gehen Sie für EHCACHE, das beliebter und weit verbreitete Java -Caching -Lösung ist. Wir verwenden EHCache ausgiebig und es funktioniert für uns.

Andere Antworten diskutieren Vor-/Nachteile für Caches; Aber ich frage mich, ob Sie überhaupt von Cache profitieren. Es ist nicht ganz klar, was Sie hier vorhaben und warum ein Cache vorteilhaft wäre: Wenn Sie den Datensatz bei Ihrer Verwendung haben, greifen Sie einfach darauf zu. Cache hilft nur dabei, Dinge zwischen ansonsten unabhängigen Aufgaben wiederzuverwenden. Wenn Sie dies tun, kann das Caching helfen. Wenn es sich jedoch um eine große Aufgabe handelt, die seinen Datensatz mitnehmen kann, würde das Caching keinen Wert hinzufügen.

In jedem Fall empfehle ich, sie mit Federmodulen zu verwenden. Der Cache kann für die Anwendung transparent sein, und Cache -Implementierungen sind trivial einfach zu tauschen. Neben Oscache und EHCache unterstützen Federmodule auch Gigaspaces und JBoss -Cache.

In Bezug

Beide sind felsen, beide unterstützen den Spiegelcache, beide arbeiten mit Terrakotta und unterstützen sowohl das Memory als auch das Caching für das Aufschwung.

Ich habe Oscache bei mehreren Frühjahrsprojekten mit Spring-Moduls mit der AOP-basierten Konfiguration verwendet.

Kürzlich habe ich Oscache + Spring-Module für ein Spring 3.x-Projekt verwendet, aber fand, dass das Caching auf Spring-Modules-basierte Caching nicht unterstützt wird (auch von der Gabel).

Ich habe kürzlich von diesem Projekt erfahren -

http://code.google.com/p/ehcache-Spring-annotations/

Dies unterstützt Spring 3.x mit deklarativem Annotationsbasis-Caching mit EHCACHE.

Ich verwende hauptsächlich EHCache, da es früher der Standard -Cache -Anbieter für Hibernate war. Es gibt eine Liste von Caching -Lösungen auf Java-source.net.

Früher hatte ich einen Link, der die Hauptdach -Lösungen verglichen hat. Wenn ich es finde, werde ich diese Antwort aktualisieren.

Oscache ist ziemlich tot, da es vor einigen Jahren aufgegeben wurde. Sie können sich Cacheonix ansehen, es wurde aktiv entwickelt und wir haben gerade V.2.2.2 mit Unterstützung für das Caching in der Webstufe veröffentlicht. Ich bin ein Kommitter, damit Sie sich wenden können, wenn Sie Fragen haben.

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