2

根据我的阅读,您不能使用 memcached 一次存储超过 1mb 的值或数据。如果是这种情况,有没有办法在将数组提交给 memcached 之前找出数组的文件大小?

4

3 回答 3

1

Memcache 是一个键/值存储,因此不“知道”更多“复杂”的对象。该模块所做的是将值序列化并将其存储为字符串。因此,总大小 =strlen(serialize($value));请注意,您需要!的重载版本strlen

于 2012-06-12T22:21:54.147 回答
0

这不会直接回答您的问题,但是如果需要,您可以将 1MB 限制更改为更大的值。

见: http: //linux.die.net/man/1/memcached

-I 覆盖每个slab 页面的默认大小。默认为 1mb。默认为 1m,最小值为 1k,最大值为 128m。调整此值会更改项目大小限制。注意这也会增加slab的数量(使用-v查看),以及memcached的总体内存使用量。

您还可以启用压缩以减小值的大小。见:http ://ca.php.net/manual/en/memcache.setcompressthreshold.php

于 2012-06-12T22:33:38.060 回答
-1

或者你尝试一种复杂的方式strlen(serialize($array)); 或者你尝试简单的方式

$before = memory_get_usage();
$myarray = array(<content>);
$size = memory_get_usage() - $before;

想不出别的办法对不起

于 2012-06-12T22:21:39.160 回答