2009-06-11 9 views
5

En nuestro uso actual de memcached, nos encontramos con problemas en un servidor de alto volumen porque se usa tanto tiempo configurando y derribando conexiones a nuestro servidor Memcache. ¿Usaría las conexiones persistentes a la ayuda de Memcached para aliviar este problema?Conexiones persistentes a memcached en PHP

Además, ¿cuál es la forma preferida de conectar y usar conexiones memcahced persistentes? Estaba pensando en el establecimiento de un "pool_size" variables al azar y luego eligiendo entre 1-$POOL_SIZE y usar esa conexión

$mem = new Memcached(rand(1, $pool_size)); 

O yo estoy buscando en el lugar equivocado o no hay una gran cantidad de información sobre esta ahí fuera.

+2

¿Es realmente necesario seleccionar una conexión aleatoria? ¿No sería mejor simplemente seleccionar el primero disponible? –

+0

No entiendo qué significa 'primer disponible'. ¿Cómo funcionaría eso? @jW. ¿Alguna vez resolviste esto? – ficuscr

Respuesta

1

El cliente php no maneja las conexiones persistentes. o bien necesita utilizar su idea de agrupación o utilizar un cliente de memcached de terceros para php que admita conexiones persistentes.

como éste:

http://github.com/andreiz/php-memcached/tree/master

+5

Parece que el cliente pecl memcache estándar ha admitido conexiones persistentes durante mucho tiempo: http://www.php.net/manual/en/memcache.pconnect.php –

+1

@Frank, hay una diferencia entre Memcache y MemcacheD (énfasis en D) –

+4

En memcached necesita especificar un ID persistente http://www.php.net/manual/en/memcached.construct.php – srcspider

1

He leído esa característica conexiones persistentes se rompe en la extensión de PHP "memcached".

Primero: la conexión "persistente" no se destruye. (Esto está bien.)

Segundo: cuando intenta volver a utilizarlo, ¡crea uno nuevo! (¡Esto es malo!)

Resultado: la memoria pierde, consumiendo cada vez más RAM disponible.

Marque aquí: http://brian.moonspot.net/php-memcached-issues

Como ya he dicho, no he experimentado yo mismo - que acabo de leer esta información en el artículo enlazado.

3

Tanto pecl/memcache como pecl/memcached admiten conexiones persistentes por proceso. Sin embargo, el error existe en pecl/memcached en este momento.

+1

Este creo ... https://bugs.php.net/ bug.php? id = 59191 ... ¿todavía abierto 6 años después? Estoy muy confundido por las conexiones persistentes memcached. – ficuscr

Cuestiones relacionadas