2011-12-30 14 views
9

He estado probando clientes spymemcached y xmemcached. He estado tratando de encontrar respuestas en la documentación de los proyectos, pero es muy pobre.cliente de memcached: apertura, cierre y reutilización de conexiones

Mis preguntas se refieren a la apertura, cierre y reutilización de las conexiones. Encontré esto en un solo documento:

Un cliente puede simplemente cerrar la conexión en cualquier momento que ya no lo necesite. Tenga en cuenta, , sin embargo, que se recomienda a los clientes que guarden sus conexiones en caché en lugar de volver a abrirlas cada vez que necesiten almacenar o recuperar datos. conexiones de caché se elimina la sobrecarga asociada con el establecimiento de una conexión TCP".

Spymemcached no proporciona un conjunto de conexiones, por lo que cada vez que crear una instancia MemcachedClient Estoy creando un nuevo derecho de conexión? Entonces, cuando debería cerrar la conexión? ¿debo proporcionar la misma instancia a todos los hilos en mi aplicación o crear uno nuevo cada vez?

xmemcached tiene un pool de conexiones. en este caso debería cerrar las conexiones que recibo de la piscina?

Respuesta

8

Spymemcached no lo hace Proporcionar un grupo de conexiones, por lo que cada vez que creo una instancia MemcachedClient, estoy creando una nueva conexión, ¿verdad?

Sí, cada vez que crea un nuevo objeto MemcachedClient crea una nueva conexión. Cada conexión aparece asíncrona a la aplicación, por lo que incluso tener una conexión probablemente sea suficiente para su aplicación. Sin embargo, algunas personas construyen un grupo de conexión de MemcachedClients.

¿Cuándo debo cerrar la conexión?

Apague las conexiones tan pronto como ya no necesite comunicarse con memcached. Si su aplicación es de corta duración, debe cerrar la conexión para que se detenga el jvm, ya que las conexiones de MemcachedClient son conexiones de daemon por defecto.

¿Debo proporcionar la misma instancia a todos los hilos en mi aplicación o crear una nueva cada vez?

Utilice la misma conexión con varios hilos. La creación de una nueva conexión para cada llamada provocará una caída significativa del rendimiento debido a la sobrecarga de la creación de una conexión TCP.

xmemcached tiene un grupo de conexiones. En este caso, ¿debo cerrar las conexiones que obtengo del grupo?

No estoy familiarizado con xmemcached, pero me imagino que solo querrías crear unos pocos (16) hilos y compartirlos con tus subprocesos de aplicación para obtener el mejor rendimiento.

+0

¿Hay puntos de referencia donde puedo ver cuántas conexiones de Memcache se necesitan en una aplicación? – Arjit

+0

La última oración parece incompleta, ¿qué quiso decir? –

+0

He editado mi respuesta anterior para completar esa última oración. – mikewied

Cuestiones relacionadas