Diapositiva: 1
análisis de redes sociales, twitter, xing, facebook, dinamic area, listening platform, plataforma de escucha, twitter, social media, tuenti, facebook, radian6, polaridad, detección de insultos, listening platform, redes sociales, neurona, listening platform, facebook, análisis, text mining, twitter, linkedin, youtube, social media, redes sociales, social media, comunity manager, listening, listening
Charla-taller sobre caché en Hibernate-
Spring
Diapositiva: 2
Índice
0 - Ín
dic
e
1
•Introducción y objetivos
2
•Concepto de caché
3
•Caché en aplicaciones
4
•Caché en Hibernate
5
•Anotaciones para Spring
Diapositiva: 3
Introducción y ObjetivosLocalizar consultas de datos
cacheables
Saber configurar EhCache
Saber utilizar anotaciones para EhCache en Spring
1 –
Intr
od
uc
ció
n y
Ob
jetiv
os
Diapositiva: 5
¿Qué es una caché?
Buffer especial de los ordenadores
Memoria más rápida que la RAM
Menor capacidad que la RAM
2 –
Co
nc
ep
to d
e c
ac
hé
Diapositiva: 6
Políticas de caché• Por demanda
• Con prebúsquedaPolítica de extracción
• Aleatoria• FIFO• LRU• LFU
Política de reemplazo
2 –
Co
nc
ep
to d
e c
ac
hé
Diapositiva: 9
Condiciones de caché
Datos elaborados tras una costosa ejecuciónConsulta pesada de
BD Cálculo elaborado
Datos poco cambiantes en el tiempo
Metadatos de aplicación
Muchas peticiones de los mismos datos
Usuarios Otros procesos
3 –
Ca
ch
é e
n a
plic
ac
ion
es
Diapositiva: 10
Primer y segundo nivelCaché de primer
nivel
• Corta duración
• Válida durante la transacción
• Manejada por defecto
Caché de segundo nivel
• Válido entre transacciones
• Persistencia en memoria
• Seleccionar proveedor: EhCache
4 –
Ca
ch
é e
n H
ibe
rn
ate
Diapositiva: 11
Niveles de aislamientoTransactional• Aislamiento hasta repeatable read• Nivel más estricto. • Clusters
Read-write• Mantiene un aislamiento hasta el nivel de commited.
Nonstrict read-write• No garantía de consistencia• Datos muy cambiantes• Datos no críticos
Read-only• Datos que nunca cambian
4 –
Ca
ch
é e
n H
ibe
rn
ate
Diapositiva: 12
Configuración y uso Modificar hibernate.cfg.xml o data-access-config.xml:
<prop key="hibernate.cache.use_second_level_cache">true</prop> --><prop key="hibernate.cache.use_query_cache">true</prop><prop key="hibernate.cache.region.factory_class">net.sf.ehcache.hibernate.EhCacheRegionFactory</prop>
Agregar anotaciones a las clases cacheables:
@Cache(usage=CacheConcurrencyStrategy.READ_WRITE)
Utilizar setCacheable al hacer un criteria (para Query caché)
4 –
Ca
ch
é e
n H
ibe
rn
ate
Diapositiva: 13
ehcache.xml diskstore path
cache name eternal maxElementsInMemory overfloToDisk timeToLiveSeconds timeToIdleSeconds diskPersistent memoryStoreEvictionPolicy
4 –
Ca
ch
é e
n H
ibe
rn
ate
Diapositiva: 14
web-application-config.xml
Esquemas: xmlns:ehcache="http://ehcache-spring-annotations.googlecode.com/svn/schema/
ehcache-springxsi:schemaLocation=http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring/ehcache-spring-1.1.xsd
Annnotation-driven:<ehcache:annotation-driven cache-manager="ehCacheManager" />
CacheManager:<bean id="ehCacheManager"
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"/>
Generador de claves de caché (para anotaciones):<bean id="cacheKeyGenerator"
class="com.googlecode.ehcache.annotations.key.HashCodeCacheKeyGenerator" autowire="byType" />
4 –
Ca
ch
é e
n H
ibe
rn
ate
Diapositiva: 18
@KeyGenerator
HashCodeCacheKeyGenerator
ListCacheKeyGenerator
StringCacheKeyGenerator
MessageDigestCacheKeyGenerator
5 –
An
ota
cio
ne
s p
ar
a S
pr
ing