estoy investigando posibilidades de utilizar memcached como dispositivo de almacenamiento sesión para un sistema construido sobre CodeIgniter. Alguien ha hecho esto antes (probablemente sea una pregunta estúpida :) y si es así, ¿cuál es tu experiencia, amigos? ¿Has usado alguna biblioteca/extensión existente? En cuanto a la mejora del rendimiento, ¿qué has visto? ¿Alguna advertencia?Usando memcached como almacenamiento de sesión con CodeIgniter
Respuesta
Tener PHP puso las sesiones en Memcache directamente, en lugar de a través de código marco es fácil - es sólo el cambio de dos líneas en el PHP.ini:
# see http://php.net/manual/en/memcache.ini.php
session.save_handler = memcache
session.save_path="tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"
Este utiliza el poco mayores (pero aún totalmente compatible) extensión 'memcache' de PECL.
Usted puede elegir el CodeIgniter Multicache Biblioteca, que se puede encontrar aquí: http://www.haughin.com/code/multicache/
En el código que puede utilizar simple como esto:
$this->load->library('cache');
//To use memcache
$this->cache->useMemcache($iptomemcache, $port); /*if you want, you can check to see if the connection even worked, as this will return false if the connection failed.*/
$this->cache->save('testkey', 'testdata', NULL, 3600); /*caches the testdata string for 1 hour. */
echo $this->cache->get('testkey');
//To switch back to file based caching
$this->cache->useFile();
//etc.
No es práctico usar Memcached para el almacenamiento de datos relacionales (como MySQL); Sería ineficiente solicitar cada elemento de Memcached y luego probar para ver si coincide con una consulta. Hay mejores soluciones para un problema como ese (considere las tablas de memoria en MySQL, por ejemplo).
Por otro lado, si está buscando almacenamiento de clave/valor simple, esa es ciertamente una aplicación práctica para Memcached. De lo que sería un poco cauteloso, sin embargo, es escribir un controlador CodeIgniter para ello. La interfaz para Memcached en PHP ya es muy simple:
$memcached->get('my key');
$memcached->set('my key', 'my value');
Sugeriría simplemente usar las clases de Memcached directamente. Agregar toda la sobrecarga extra a CI parece sucio e innecesario para mí.
Por otro lado, he visto implementaciones de Memcached usadas para el motor de sesión de CodeIgniter. Esa es ciertamente una razón muy válida para escribir un controlador, y lo recomendaría encarecidamente (las sesiones son un dolor en el cuello para escalar).
Buena suerte
- 1. Cómo usar memcached de codeigniter
- 2. Estrategias de almacenamiento en caché con Memcached?
- 3. sesión de PHP y MemCached
- 4. Almacenamiento en caché de imágenes en Memcached
- 5. Seguridad de la sesión Codeigniter
- 6. Memcached o MySQL para el almacenamiento de sesiones - PHP
- 7. Sistema de inicio de sesión con Codeigniter
- 8. Codeigniter 2x sesión de firefox
- 9. Cambiar el backend de almacenamiento de Zend_Auth $ _SESSION a Memcached
- 10. sesión de CodeIgniter expira frecuencia
- 11. usando la doctrina con codeigniter
- 12. actualización de sesión en codeigniter
- 13. almacenamiento local y almacenamiento de sesión
- 14. integración de inicio de sesión vainilla/codeigniter con jsconnect/SSO
- 15. Cómo implementar cuotas de almacenamiento de usuarios usando Amazon S3 como el almacenamiento como dropbox does
- 16. ASP.NET MVC ¿Estado de sesión usando el particionamiento de estado, MongoDB o Memcached o ...?
- 17. Ubuntu: ejecutando Memcached como daemon
- 18. Problema de sesión duplicada de Codeigniter
- 19. Codeigniter Base de datos de sesión
- 20. CodeIgniter límite de tamaño de la sesión
- 21. cómo empezar con memcached
- 22. ¿Memcached es intercambiable con ASP.NET State Server?
- 23. desarmando algunos datos de sesión en codeigniter
- 24. creación XML usando CodeIgniter
- 25. Tecla de sesión en bastidor demasiado larga para memcached
- 26. Bases de datos usando JSON como formato de almacenamiento/transporte
- 27. Comparación de rendimiento de MemCached con almacenamiento en memoria caché de disco
- 28. Almacenamiento en caché en el sitio con Django: problemas con las páginas protegidas con contraseña al cerrar sesión
- 29. INSERTAR IGNORAR usando Codeigniter
- 30. Memcached con Windows y .NET