【发布时间】:2011-03-17 19:28:21
【问题描述】:
所以在 PHP 中我们可以做到$memcache->get(array('a','b','c'));
我想知道在事情破裂之前钥匙的限制是什么。我可以传递 1000 个密钥吗? 10000 把钥匙?
我试图找到答案,但在任何地方都找不到。
有没有人有过传递大量键以多次获取内存缓存的经验?
【问题讨论】:
所以在 PHP 中我们可以做到$memcache->get(array('a','b','c'));
我想知道在事情破裂之前钥匙的限制是什么。我可以传递 1000 个密钥吗? 10000 把钥匙?
我试图找到答案,但在任何地方都找不到。
有没有人有过传递大量键以多次获取内存缓存的经验?
【问题讨论】:
Memcached extension 在 getMulti 中支持至少 100,000 个键,给定这个测试:
php > $data = array_map(function($v){ return 'x' . $v; }, range(1, 100000));
php > foreach($data as $d) { $memcached->add($d, $d); }
php > $multi = $memcached->getMulti($data);
php > echo is_array($multi);
1
php > echo count($multi);
100000
我试图将它提高到一百万,但我达到了我配置的 PHP 内存限制并立即决定如果执行 十万个项目 的 getMulti 还不够好,那么你就是可能滥用 memcached。
【讨论】:
没有硬性限制,但会有不同的实际限制,最终可能会因应用而异。
【讨论】: