Usar memcached para el almacenamiento de sesión
Memcached es un sistema de almacenamiento en caché de memoria distribuida de uso general. A menudo se utiliza para acelerar los sitios web dinámicos impulsados por bases de datos almacenando en caché datos y objetos en la RAM para reducir el número de veces que se debe leer una fuente de datos externa (como una base de datos o una API).
Memcached proporciona una tabla hash de gran tamaño que se puede distribuir entre varios equipos. Cuando la tabla está llena, las inserciones posteriores hacen que los datos más antiguos se purguen en el orden de uso menos reciente (LRU). El tamaño de esta tabla hash suele ser muy grande. (Source: memcached.org)
Commerce utiliza memcached para el almacenamiento de sesión, pero no para el almacenamiento de páginas en caché. Para el almacenamiento en caché de páginas, recomendamos Redis o Varnish.
Para configurar Commerce para que use memcached:
-
Abra
<your install dir>/app/etc/env.php
en un editor de texto. -
Busque lo siguiente:
code language-php 'session' => array ( 'save' => 'files', ),
-
Cámbielo como se indica a continuación:
code language-php 'session' => array ( 'save' => 'memcached', 'save_path' => '<memcache ip or host>:<memcache port>' ),
memcached tiene parámetros de inicio opcionales que están fuera del alcance de esta guía. Puede encontrar más información sobre ellos en la documentación de memcached, el código fuente y los registros de cambios.
-
Continúe con la siguiente sección.
Para comprobar que memcached funciona con Commerce:
-
Elimine el contenido de los siguientes directorios del directorio de instalación de Commerce:
code language-bash rm -rf var/cache/* var/page_cache/* var/session/*
-
Vaya a cualquier página de la tienda.
-
Inicie sesión en Admin y navegue a varias páginas.
Si no se muestran errores, ¡enhorabuena! memcached está funcionando. Opcionalmente, puede consultar el almacenamiento en caché de memes como se describe en el siguiente paso.
Si se muestran errores (como un HTTP 500 (Error interno del servidor)), habilite el modo de desarrollador y diagnostique el problema. Asegúrese de que memcached se esté ejecutando, que esté configurada correctamente y que
env.php
no tenga errores de sintaxis. -
(Opcional.) Utilice Telnet para ver el almacenamiento en memoria caché.
code language-bash telnet <memcached host or ip> <memcached port>
code language-bash stats items
Los resultados son similares a los siguientes:
code language-none STAT items:3:number 1 STAT items:3:age 7714 STAT items:3:evicted 0 STAT items:3:evicted_nonzero 0 STAT items:3:evicted_time 0 STAT items:3:outofmemory 0 STAT items:3:tailrepairs 0 [Look at the keys in more detail](https://darkcoding.net/software/memcached-list-all-keys/)