Pregunta

Nunca se utiliza una caché como esto antes.El problema es que quiero cargar más de 500.000 registros de una base de datos y hacer algunas selección y filtrado de malvados rápido.

Estoy pensando en usar un caché, y de manera preliminar se encontró EHCache y OSCache, cualquier opinión?

¿Fue útil?

Solución

Ambos son bastante sólidos proyectos.Si usted tiene bastante básica de almacenamiento en caché de necesidades, sea uno de ellos probablemente va a funcionar tan bien como los otros.

Puede que también desee considerar la posibilidad de hacer el filtrado en una consulta de base de datos si es viable.A menudo, el uso de un afinado consulta que devuelve un pequeño conjunto de resultados va a dar mejor rendimiento que la carga de 500.000 filas en memoria y, a continuación, el filtrado de ellos.

Otros consejos

A juzgar por su página de comunicados, OSCache no ha sido mantenida activamente desde el año 2007.Esta no es una buena cosa.EhCache, por otro lado, está en constante desarrollo.Por esa sola razón, yo elegiría EhCache.

Edición De Noviembre De 2013:OSCache, al igual que el resto de OpenSymphony, está muerto.

He usado JCS (http://jakarta.apache.org/jcs/) y parece sólido y fácil de usar a través de programación.

Es una especie de que depende de tus necesidades.Si usted está haciendo el trabajo en la memoria de una máquina, entonces ehcache funciona a la perfección, suponiendo que se dispone de suficiente memoria RAM o un rápido disco duro suficiente para que la inundación no causa de paginación del disco/de la trilla.si usted encuentra que usted necesita para lograr la escalabilidad, incluso a pesar de esta operación en particular sucediendo mucho, entonces usted probablemente querrá hacer de la agrupación.JGroups /TreeCache de JBoss apoyo de esto, así que no EHcache (creo), y yo sé que definitivamente funciona si uso Ehcache con terracota, que es un muy hábil integración.Esta respuesta no habla directamente a los méritos de EHcache y OSCache, así que aquí está la respuesta:EHcache parece tener la mayoría de inercia (que solía ser la predeterminada, bien conocido, de desarrollo activo, incluyendo un nuevo servidor de caché), y OSCache parecía (por lo menos en un punto) para tener un poco más características, pero creo que con las opciones mencionadas anteriormente esas ventajas son discutible/reemplazado.Ah, otra cosa que me olvidé de mencionar es que transactionality de los datos es importante, y sus requisitos para refinar la lista de opciones válidas.

Elegir un caché que cumple JSR 107 que harán su trabajo más fácil cuando usted desea migrar de una implementación a otra.Para ser específicos sobre la cuestión de ir a por Ehcache que es más popular y ampliamente utilizado Java solución de almacenamiento en caché.Estamos utilizando Ehcache ampliamente y que funciona para nosotros.

Otras respuestas discutir los pros y los contras para caché;pero me pregunto si realmente se benefician de caché a todos.No queda muy claro exactamente lo que usted planea hacer aquí, y por qué un caché sería beneficioso:si usted tiene el conjunto de datos en su uso, el acceso justo que.Caché de sólo ayuda a reutilizar las cosas entre otra manera independiente las tareas.Si esto es lo que están haciendo, sí, el almacenamiento en caché puede ayudar.Pero si es una gran tarea que puede llevar a lo largo de su conjunto de datos, el almacenamiento en caché gustaría añadir ningún valor.

De cualquier manera, yo recomiendo el uso de ellos con los Módulos de Resorte.La caché puede ser transparente para la aplicación, y las implementaciones de caché son trivialmente fácil intercambiar.Además OSCache y EHCache, los Módulos de Resorte también apoyo Gigaspaces y JBoss cache.

En cuanto a las comparaciones....OSCache es más fácil de configurar EHCache tiene más opciones de configuración

Ambos son de roca sólida, tanto de apoyo a la creación de reflejo de la caché, el trabajo con Terracota, tanto para el apoyo en memoria y almacenamiento en caché de disco.

He utilizado oscache en varios proyectos de primavera con la primavera-módulos, el uso de la aop basado en la configuración.

Recientemente miré a utilizar oscache + módulos de resorte en un Muelle 3.proyecto x, pero se encontró primavera-módulos de anotación basado en el almacenamiento en caché no es compatible (incluso el tenedor).

Recientemente me enteré de este proyecto -

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

Que apoya la primavera 3.x con declarativo basado en anotaciones de almacenamiento en caché utilizando ehcache.

Yo uso principalmente EhCache porque solía ser el predeterminado proveedor de caché para Hibernar.Hay una lista de soluciones de almacenamiento en Java-Source.net.

Yo solía tener un vínculo que, en comparación con las principales soluciones de almacenamiento en caché.Si me parece que voy a actualizar esta respuesta.

OSCache está prácticamente muerta, como ha sido abandonado hace un par de años.Usted puede tomar un vistazo a Cacheonix, se ha desarrollado activamente y acabamos de publicar v. 2.2.2 con soporte para almacenamiento en caché en la capa web.Soy un confirmador lo que puede llegar si usted tiene alguna pregunta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top