PHP 如何找出内存缓存数组上的文件大小


PHP How to find out the filesize on an array for memcached

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

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

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

请参阅:http://linux.die.net/man/1/memcached

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

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

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

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

想不出任何其他方式对不起