根据我的阅读,您不能使用 memcached 一次存储超过 1mb 的值或数据。如果是这种情况,有没有办法在将数组提交给 memcached 之前找出数组的文件大小?
问问题
293 次
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 回答