máximo de un elemento en Memcache es de 1.048.576 Bytes (1 MB), la serialización de una matriz ocupa un poco de espacio.
si se va a estructurar su matriz como simplemente como:
array(
[0] => 1,
[1] => 2,
[2] => 3
)
clave es generada automáticamente y el valor es el ID de usuario.
una serie serializada de 5000 usuarios numerados 1-5000 utilizando esta estructura tiene una longitud de cadena de 67792 caracteres, 50000 usuarios produce una matriz de 777794 caracteres.
Numeración 100000 a 150000 produce una cadena serial de 838917 caracteres.
por lo que a los 50k usuarios (como se hace referencia en su pregunta anterior), es probable que esté por debajo del límite de 1 MB. sin embargo, si tiene un caché local (APC, etc.), utilícelo en su lugar, o si por algún motivo NO necesita todos los ID a la vez, le recomiendo dividir los resultados o simplemente usar el DB.
también piense en la estructura de datos que está almacenando en memcached. Si está utilizando el caché simplemente para darle una lista de las claves principales para la búsqueda, ¿necesita los otros datos?
Grandes gracias y en mi caso el identificador de usuario, URL, y todo nombre sería una matriz dentro de una gama de hasta 5.000 usuarios, ¿es malo? – JasonDavis
¿Tiene una RAZÓN para almacenar 5K registros en Memcache? Creo que te puedes perder el punto de almacenamiento en caché. – doomspork
Depende. Dado mi ejemplo simple, esa matriz tomaría ~ 500 bytes. Multiplicando eso por 5,000 estás en 2.5 MB. Ese es un objeto bastante grande para permanecer en memcached. – hobodave