La biblioteca de cliente Memcached se lanzó recientemente como estable. Digg lo está utilizando (fue desarrollado para digg por Andrei Zmievski, ahora ya no con digg) e implementa mucho más el protocolo memcached que el cliente memcache más antiguo. Las características más importantes que tiene memcached son:
- Fichas de cas . Esto me facilitó la vida y es un sistema preventivo fácil para datos obsoletos. Cada vez que extrae algo del caché, puede recibir un token cas (un número doble). Puede usar ese token para guardar su objeto actualizado. Si nadie más actualizó el valor mientras se ejecutaba su hilo, el intercambio tendrá éxito. De lo contrario, se creó un token cas más nuevo y se ve obligado a volver a cargar los datos y guardarlos nuevamente con el nuevo token.
- Leer las devoluciones de llamada es lo mejor desde el pan rebanado. Ha simplificado gran parte de mi código.
- getDelayed () es una buena característica que puede reducir el tiempo que su script tiene que esperar a que los resultados regresen del servidor.
- Si bien se supone que el servidor memcached es muy estable, no es el más rápido. Puede usar el protocolo binario en lugar de ASCII con el cliente más nuevo.
- Cada vez que guarda datos complejos en memcached, el cliente solía hacer siempre la serialización del valor (que es lento), pero ahora con el cliente memcached tiene la opción de usar igbinary . Hasta ahora no he tenido la oportunidad de probar cuánto puede aumentar esto en rendimiento.
Todos estos puntos fueron suficientes para que me cambiara al cliente más nuevo, y puedo decirte que funciona de maravilla. Existe esa dependencia externa de la biblioteca libmemcached , pero de todos modos he podido instalarla en Ubuntu y Mac OSX, por lo que no hay problemas hasta ahora.
Si decide actualizar a la biblioteca más nueva, le sugiero que actualice a la última versión del servidor y que también tenga algunas características interesantes. Necesitará instalar libevent para que se compile, pero en Ubuntu no fue un gran problema.
No he visto ningún framework que recoja el nuevo cliente memcached hasta ahora (aunque no los sigo), pero supongo que Zend se incorporará en breve.
ACTUALIZAR
Zend Framework 2 tiene un adaptador para Memcached que se puede encontrar aquí