Enjuagar el caché en el banderín de Laravel difiere del típico caché del sistema en el contexto de alcance, propósito y implementación.
Flushing de caché del banderín de Laravel:
- Pennant mantiene un * caché en memoria * de los resultados del indicador de características durante la duración de una sola solicitud para evitar consultas de bases de datos repetidas dentro de esa solicitud. Este caché se alcanza al ciclo de vida de la solicitud y no es persistente en todas las solicitudes.
- Flushing Pennant's Cache se realiza manualmente a través del método `FlushCache` en la fachada` Feature` (`Feature :: FlushCache ();`). Esto borra el caché en memoria de los indicadores de características para la solicitud actual, lo que obliga a las verificaciones de características posteriores para volver a considerar la fuente de datos o la recarga de funciones.
- Esta descarga se trata específicamente de borrar el caché en la memoria que Pennant usa para optimizar las verificaciones de indicadores de características dentro de una sola solicitud, asegurando la consistencia y el rendimiento durante esa solicitud.
- Pennant también admite una carga ansiosa de indicadores de características para colecciones o ámbitos para reducir las consultas de la base de datos, lo que complementa su estrategia de almacenamiento en caché, pero está separado de Flushing [1].
Flushing típico de caché del sistema (por ejemplo, cachés de hardware o aplicación):
- En sistemas como controladores de almacenamiento o cachés de uso general, Flushing se refiere a escribir datos en caché a un almacén persistente (por ejemplo, disco) para garantizar la integridad de los datos. Esto implica descargar líneas de caché "sucias" o bloques de datos al almacenamiento subyacente.
-El lavado de caché en estos sistemas a menudo es automático y se rige por algoritmos como la demanda (activado cuando el uso de caché alcanza un umbral) o basado en la edad (desencadenado después de un período de tiempo), con el objetivo de equilibrar el rendimiento y la seguridad de los datos.
- Flushing aquí significa empujar los datos de la memoria de caché volátil a una ubicación más permanente y no necesariamente borra el contenido de la memoria caché de inmediato; El caché sigue siendo válido y aún puede servir golpes.
- Este proceso es crítico para mantener la consistencia entre el caché y la memoria/almacenamiento principal y a menudo es transparente para el usuario o la aplicación [5] [7] [10].
Diferencias clave:
-Alcance y propósito: la descarga de caché de Pennant se trata de borrar un caché de corta duración y en memoria de los indicadores de características dentro del contexto de una sola solicitud web, principalmente para controlar el flujo y el rendimiento lógico de la aplicación. Por el contrario, el lavado de caché del sistema se ocupa de garantizar la persistencia de datos e integridad entre el caché volátil y el almacenamiento permanente.
- Manual vs. Automático: el banderín requiere una invocación explícita para enjuagar su caché, mientras que los cachés del sistema a menudo se descargan automáticamente en función de los umbrales o temporizadores.
- Efecto sobre el caché: el descarga de Pennant borra el caché por completo para la solicitud actual, forzando la recuperación de datos frescos. System Cache Flushing escribe datos de retroceso, pero no necesariamente invalida o borra el caché de inmediato.
- Contexto: Pennant opera en la capa de aplicación (marco PHP), centrándose en la eficiencia de evaluación del indicador de características. System Cache Flushing funciona a nivel de hardware u sistema operativo, centrándose en la integridad de los datos y la optimización del rendimiento para las operaciones de E/S.
En resumen, el enjuague del caché en Laravel Pennant es una operación manual de nivel de aplicación que borra una memoria caché en memoria utilizada para las verificaciones de indicador de características dentro de una sola solicitud, mientras que el caché enjuague en otros sistemas generalmente se refiere a procesos automatizados que escriben datos en caché de datos al almacenamiento persistente para mantener la integridad de los datos y el rendimiento del sistema [1] [5] [7] [10].
Citas:
[1] https://laravel.com/docs/11.x/pennant
[2] https://stackoverflow.com/questions/77078816/how-to-disable-caching-for-laravel-pennant-in-db
[3] https://github.com/laravel/pennant/issues/68
[4] https://laracasts.com/episodes/2685
[5] https://docs.netapp.com/us-en/e-series-santricity-115/sm-settings/what-is-cache-flushing.html
[6] https://www.krakend.io/docs/backends/caching/
[7] https://pubs.lenovo.com/thinksystem_system_manager_11.50.3/0d7ae5a7-70b3-4f5b-851d-1b87a3aed0b2_
[8] https://laravel.com/docs/11.x/cache
[9] https://www.linkedin.com/pulse/demystifystify-memory-sub-systems-caches-simon-routhwell
[10] https://docs.netapp.com/us-en/e-series-santicity/sm-settings/what-is-cache-flushing.html