Cambios de caché (caché local JVM->caché distribuido de Redis)

En una modificación de requisitos, el servicio posterior presentó además requisitos para el tiempo efectivo de una determinada caché de datos comerciales.

Plan de diseño original de JVM:

Utilizando el mecanismo de almacenamiento en caché local de JVM, las tareas programadas se actualizan cada 30 segundos.

Ahora redistribuye la solución:

  1. Debido a que este caché de datos comerciales se usa en muchos lugares, su uso no se puede cambiar demasiado.
  2. Debido a que es una implementación distribuida, si solo usa el caché jvm, no podrá actualizar los datos almacenados en caché en otros servidores y no podrá surtir efecto de inmediato.
  3. La razón para no usar el caché de segundo nivel: el motivo es el mismo que el segundo: si se usa jvm primero, incluso si se actualiza redis, otros servidores usarán el caché de jvm primero (también por qué el caché de segundo nivel ¿usado?: Debido a que el caché local de jvm es más rápido. Eso es todo, tiene que aumentar la carga sobre la arquitectura, solo por un requisito)

Entonces: cambie directamente el mantenimiento de la caché empresarial de jvm a redis para mantenimiento

Luego, debe considerar el tiempo efectivo de actualización activa y pasiva, etc.

  1. Actualización pasiva: todavía uso el mecanismo de tareas programadas de jvm cache, actualizado cada 30 segundos (sin cambios, usando el mecanismo original)
  2. Actualización activa: dado que el tiempo efectivo es de un segundo, el caché debe actualizarse activamente inmediatamente después de las modificaciones y actualizaciones (hay pocos cambios, el mantenimiento se realiza todo en un proyecto y no es necesario usar nada para monitorear la tabla mysql)

Beneficios de la modificación:

  1. Problemas para obtener inyección en clases de herramientas BeanUtil.getBean(RedisTemplate.class);
  2. La canalización de redis Pipeline acelera redisTemplate.STRINGS.setEx(redisCacheList,refreshTime);
  3. Idea de segmentación: granularidad más pequeña, como: redis. Los datos almacenados en una tabla por una clave son demasiado grandes, por lo que se dividen según la clave clave en la tabla.

Supongo que te gusta

Origin blog.csdn.net/qq_44961149/article/details/132447694
Recomendado
Clasificación