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:
- Debido a que este caché de datos comerciales se usa en muchos lugares, su uso no se puede cambiar demasiado.
- 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.
- 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.
- Actualización pasiva: todavía uso el mecanismo de tareas programadas de jvm cache, actualizado cada 30 segundos (sin cambios, usando el mecanismo original)
- 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:
- Problemas para obtener inyección en clases de herramientas BeanUtil.getBean(RedisTemplate.class);
- La canalización de redis Pipeline acelera redisTemplate.STRINGS.setEx(redisCacheList,refreshTime);
- 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.