MySQL y Redis lograr coherencia de caché

En primer lugar, sincronización en tiempo real

Por la fuerte demanda alta consistente, programa de sincronización en tiempo real se debe utilizar, es decir, la caché de consultas no puede encontrar otra consulta de la base de datos, guardarlo en la memoria caché, la actualización de la memoria caché para actualizar la base de datos, a continuación, establecer la caducidad de la caché (no recomendado para actualizar el contenido de caché, establecer directamente la caché expira)

@Cacheable:查询时使用,注意Long类型需转换为String类型,否则会抛异常。
@CachePut:更新时使用,使用此注解,一定会从DB上查询数据
@CacheEvict:删除时使用
@Caching:组合用法

En segundo lugar, la columna asíncrono

Para un alto grado de concurrencia, la columna puede ser asíncrono a modo síncrono, y similares pueden ser empleados kafka de mensajería mensajes de procesamiento de middleware de producción y consumo.

la penetración de la caché

la penetración de caché se refiere a una determinada consulta de datos no existe, porque se necesita la memoria caché de la consulta de base de datos no se ve afectado, no puede encontrar la caché de datos no está escrito, que dará lugar a un momento en que no existe en la solicitud de datos debe ir a la base de datos consulta, lo que resulta en la penetración de caché.

solución:

Persistencia consulta caché menos de un resultado nulo, determinar en primer lugar si existe la caché (clave), si hay un retorno directo vacío, entonces no hay ninguna consulta después devuelve la consulta.
Atención a la necesidad de borrar la clave de consulta cuando inserto, o incluso si hay un valor en la base de datos no puede encontrar a cabo (por supuesto, se le proporciona un tiempo de caducidad de caché vacío)

caché de avalancha

Si la caché se concentra en un período de tiempo ha expirado, una gran cantidad de memoria caché de penetración se produce, todas las consultas caen en la base de datos, lo que resulta en una memoria caché de avalancha.

solución:

Esto no es una solución perfecta, pero puede analizar el comportamiento del usuario, tratar de hacer tiempo para los puntos de falla uniformemente distribuida.
La mayoría de los diseñadores de sistemas a considerar una forma de bloqueo o de caché colas para garantizar un único subproceso (proceso) para escribir, con el fin de evitar el fracaso de un gran número de solicitudes simultáneas caer sobre el dispositivo de almacenamiento subyacente.

Hot Key

tecla de acceso rápido: una visita clave muy a menudo, cuando la falla clave de un gran número de hilos para construir la memoria caché, lo que resulta en aumento de la carga, el sistema se bloquea.

solución:

1, una cerradura, un único sincronizado, bloqueo, etc., distribuidos en una cerradura distribuida.
2, el tiempo de caducidad de la caché no está definida, pero en la llave en el valor correspondiente. Si el detectado durante períodos mayores a la actualización asíncrona tiempo de caducidad de la memoria caché.
3, un valor conjunto de t1 en valor que el tiempo de expiración de tiempo t0 t1 pequeña de caducidad cuando expirado, extender y hacer la operación t1 actualización de la caché.
4, establezca la caché etiqueta, la etiqueta de la memoria caché ajustar una hora de caducidad, después de la caché etiqueta expira, la necesidad de actualizar la memoria caché asíncrona real.

Publicados 179 artículos originales · ganado elogios 185 · Vistas a 80000 +

Supongo que te gusta

Origin blog.csdn.net/Sophia_0331/article/details/104796763
Recomendado
Clasificación