Sistema de cachépara optimizar web PHP

8917 단어 optimizecachewebdev
Uno de los factores por los cuales deberíamos preocuparnos en nuestro día a día es tener un buen tiempo de respuesta en nuestras aplicaciones,este se puede ver degradado por varios factores,pero por fortuna para nosotros,existen muchos components y procedientos que nos pueden ayudar a optimizarlo.este blog te comparitir é una serie de pasos relacionados con el caché,que pueden ayudarte a mejorar bastante los tiempos de respuesta.

누구세요?


El cachées un component que nos permite almacenar en memoria datos previamente procesados,regularmate los sistemas de cachéfunction an como un Hashmaps o diccionario clave valor,en dónde la clave es una cadena de texto que function a como identificador y El valor puede contener casi cualquier cosa.
일반적으로 el concepto de caché se traduce a lo siguiente:

은덕:
  • El cliente envía una petición al-servidor.
  • Si la petición ya se Encuntera en caché,entons regresa la respuesta guarda.
  • Si la petición no se encuentra en caché,entons es enviada a nuestra aplicación para que sea procesada.
  • La aplicación procesa los datos y crea una respuesta.
  • La aplicación almacena La respuesta en caché
  • La respuesta es enviada al cliente.
  • La memoria cachéest á limitada a valores computes,sin 금수,existen herramientas y té cnicas que nos pueden ayudar a emular un sistema de caché para archivos físicos e inclusive para manejar bytecode,a continuación hablaremos de ellas.

    ?Cuándo debería usar caché?


    La respuesta a esta pregunta es casi siempre,un sistema de cachémejoraráde manera incremble los tiempos de respuesta de tu aplicación,inclusive si tienes contenido generado dinámicament puedes ahorrrar unos milisegudos o segudos dependiendo de La complejidad y configuration que utilities.

    ?Cuándo no usar caché?


    Elúnico enemigo real del cachéson los sistemas real-time,en dónde se tienen actualizaciones por milisegundos,como lo puede ser un sistema de seguimiento de vehículos a través de GPS.De todos modos,se pueden utilizar ciertas técnicas De cachépara agilizar parte del proceso completo.

    장애인 캐치


    Dado que el cachéalmacena datos/archivos procesados,es important hacer limpieza de este cada cierto tiempo,haciendo que nuestra aplicación no se quede obsoleta en cuanto información y liberando memoria,el término“invalidar”hace referencea eliminar los datos que se encumentran en caché.
    세 가지 요소가 있습니다.

    Invalidación por tiempos definidos 무효


    Cuando almacenamos datos en caché,tenemos la posibilidad de elegir un tiempo que se mantendráguardado,al pasar este tiempo,el cachéseráinvalidado automáticamente.
    El tiempo que debemos mantener los datos en caché depender á de la concurrencia de la aplicación o fragmento de có digo,si es un có digo que regresa siempre la misma salida,por ejempo, una 로그인 페이지,podemos establecer un periodo de 30 min a 2 horas,sin 금수,si El có digo que remos cachear est á en constante cambio,podemos incluso hacer caché de 3 a 20 segunds,파리스 드 무차 아유다(parece de mucha ayuda)가 없었다면 우리는 그것을 평가할 수 있었을 것이다.

    Invalidación por elementos poco utilizados 회사


    Los elementos de cachéque se utilizan en menor frecuencia también puede ser invalidados,en special si la memoria estápor agotarse,es muy possible que el propio sistema de cachéinvalide estos datos de manera automática.

    Invalidación 브로셔


    Al igual que tenemos el control sobre lo que se almacena en caché,podemos definir en quémomento invalidar,esto resultaútil cuando,por ejempo,cambiamos el estado de la base de datos y necesitamos que el cachéobtenga las nuevas entradas.

    Cacheando 변수


    Si lo que deseamos es almacenar valores diversos,siendoéstos,variables de sesión,resultados de querys,etc,entons,necesitaremos de algún motor para manejar el caché,las principales opciones que tenemos en PHP sonmemcachedyredis.
    ambos casos tenemos una API bastante amplia que nos permitir á n almacenar valores En caché En una estructura clave valor에서 ambos cuentan con la opción de establecer el tiempo que permanecer á n los datos En caché.
    Dado que ambas herramientas son muy buenas,tienden a tener muy buena integración con frameworks,por lo que muy probablemente ya tengas pre configurado una librería en la herramienta que utilizas día día día.
    La instalación de un servicdor para procesar cachéno es complada y brinda muchísimos benciios.

    Cacheando 바이트


    A pesar de quephpes un lenguaje interpretato,es possible guardar fragmentos de código que siempre regresan la misma salida,haciendo que su ejección sea mucho más rápida.
    Para lograrésto,existe la extensiónOPCache,Disponsible a partir de php 5.5,su trabajo es análizar todos esos fragmentos de código y de manera automática los irágestionando.
    La configuración de La extensión se hace en el archivophp.iniy se recomienda una configuración inicial como La siguiente:
    opcache.memory_consumption=128
    opcache.interned_strings_buffer=8
    opcache.max_accelerated_files=4000
    opcache.revalidate_freq=60
    opcache.fast_shutdown=1
    opcache.enable_cli=1
    
    은덕:
  • memory_consumption:Indica el tamaño de la memoria en MB que puede ser utilizada por OPCache,el valor mínimo permitido es de 8MB.
  • interned_strings_buffer:Indica la cantidad de memoria en MB para almacenar cadenas de téxto.
  • max_accelerated_files:Indica el número máximo de scripts que pueden ser almacenados en OPCache.
  • revalidate_freq:Tiempo en segundos que se mantendrán cacheados los scripts.
  • fast_shutdown:Permite deshabilitar el sistema de cachéde manera rápida,delegando la limpieza de memoria al engineZend.php7.2 버전 omayor,estaconfiguración noesnecesaria.
  • enable_cli:Habilita el cachépara la versión CLI de php.
  • El resto de configuraciones son opcionales,sin 금수,te comparto ladocumentación oficialde OPCache por si deseas saber más al restero.

    Cacheando archivos 회사


    Una técnica muy utilizada specialmente en herramientas que pre procesan archivos,es mantener Una version cacheada del archivo previamente procesado,siguiendo el mismo concepto inicial,si el archivo ya fue procesado,se regresa como respuesta,de lo contario,se compila,se guarda físicamente en Una carpeta y regresa el archivo.
    Una ventaja que tenemos es que podemos combinar partes físicas,con datos previamente guardados en memcached o redis teniendo Una mezcla enter contenido estático y dinámico,pero cargado en memoria y con la posibilidad de manejar diferentes tiempos de vida.

    Cacheando respuestas 회사


    La manera de cachear respuestas para ser servicidas a mayor velocidad se da a través de cabeceras en La petición/respuesta,éstas pueden ser gestionadas con ayuda de tu servicdor http comoapacheonginxy suelen trabajar muy bien con librerías comocache-plugin.
    Las cabeceras que suelen ser utilizadas para el control de cachéson:
  • Expires: 티엔보 델카흐.
  • Cache-Control:Directivas que indican el comportamiento del caché.
  • ETag:Hash del contenido,se utiliza cuando se generan datos dinámicamente.
  • Last-Modified: 알티마 페차 데 모디피카송
  • If-None-Match:Cabecera que indica que el contenido no se encuentra en caché.
  • If-Modified-Since:Cabecera que indica que el contenido que encuentra en cachéha sido.
  • 결론:


    El cachées El mejor aliado que tenemos para optimizar los tiempos de respuesta de nuestra aplicaciones,es important que dediquemos un tiempo a compender y experitar respear respeas al uso de caché.
    Si es que utilizas algún framework,te invito a que investigues que métodos de cahéimplementa y lo compartas en los comentarios o Si tienes alguna otra implementación que nos pueda ayudar,sería genial que la comparieras.
    Espero que esta guía te haya sido de ayuda.
    "하스타라프로시마!

    좋은 웹페이지 즐겨찾기