Memcache::get 无法使用键数组
Memcache::get not working with array of keys
我正在尝试在 PHP 中测试 memcached 客户端的 multi_get
功能,我知道
array Memcache::get ( array $keys [, array &$flags ] )
可用。
00000001 <?php
00000002 function rand01()
00000003 { // auxiliary function
00000004 // returns random number with flat distribution from 0 to 1
00000005 return (float)rand()/(float)getrandmax();
00000006 }
00000007 ini_set('display_errors', 1);
00000008 $mc=new Memcached();
00000009 $mc->setOption(Memcached::OPT_DISTRIBUTION,Memcached::DISTRIBUTION_CONSISTENT);
00000010 $mc->setOption(Memcached::OPT_REMOVE_FAILED_SERVERS,true);
00000011 echo "return value of addServer<br>";
00000012 var_dump($mc->addServer("mc1",11211));
00000013 var_dump($mc->addServer("mc2",11211));
00000014 var_dump($mc->addServer("mc3",11211));
00000015 echo "<br>";
00000016 $mc->set('00010111222',"testval");
00000017 $mc->set('00010333444',"testval");
00000018 echo "<br>";
00000019 var_dump($mc->get(array('00010111222', '00010333444')));
00000020 var_dump($mc->getResultCode());
00000023 ?>
但它给了我以下输出:
return value of addServer
bool(true) bool(true) bool(true)
Warning: Memcached::get() expects parameter 1 to be string, array given in /var/www/html/memcache.php on line 19
NULL int(0)
表示服务器添加成功,但第19行get()
提示参数为数组,returned对象为NULL。 return 代码为 0,这意味着查询成功,并且密钥存在于 memcached 中,因为我在第 16 行和第 17 行设置了它们。我做错了什么或者这是 [=24= 中的错误]?
这是一个 Memcache
与 Memcached
的问题。
Memcached::get
只接受一个字符串作为第一个参数。
http://php.net/manual/en/memcached.get.php
Memcache::get
是接受字符串或数组的方法。
http://php.net/manual/en/memcache.get.php
您可以获得与遍历数组并为每个值调用 Memcached::get($key)
相同的结果。
我正在尝试在 PHP 中测试 memcached 客户端的 multi_get
功能,我知道
array Memcache::get ( array $keys [, array &$flags ] )
可用。
00000001 <?php
00000002 function rand01()
00000003 { // auxiliary function
00000004 // returns random number with flat distribution from 0 to 1
00000005 return (float)rand()/(float)getrandmax();
00000006 }
00000007 ini_set('display_errors', 1);
00000008 $mc=new Memcached();
00000009 $mc->setOption(Memcached::OPT_DISTRIBUTION,Memcached::DISTRIBUTION_CONSISTENT);
00000010 $mc->setOption(Memcached::OPT_REMOVE_FAILED_SERVERS,true);
00000011 echo "return value of addServer<br>";
00000012 var_dump($mc->addServer("mc1",11211));
00000013 var_dump($mc->addServer("mc2",11211));
00000014 var_dump($mc->addServer("mc3",11211));
00000015 echo "<br>";
00000016 $mc->set('00010111222',"testval");
00000017 $mc->set('00010333444',"testval");
00000018 echo "<br>";
00000019 var_dump($mc->get(array('00010111222', '00010333444')));
00000020 var_dump($mc->getResultCode());
00000023 ?>
但它给了我以下输出:
return value of addServer
bool(true) bool(true) bool(true)
Warning: Memcached::get() expects parameter 1 to be string, array given in /var/www/html/memcache.php on line 19
NULL int(0)
表示服务器添加成功,但第19行get()
提示参数为数组,returned对象为NULL。 return 代码为 0,这意味着查询成功,并且密钥存在于 memcached 中,因为我在第 16 行和第 17 行设置了它们。我做错了什么或者这是 [=24= 中的错误]?
这是一个 Memcache
与 Memcached
的问题。
Memcached::get
只接受一个字符串作为第一个参数。
http://php.net/manual/en/memcached.get.php
Memcache::get
是接受字符串或数组的方法。
http://php.net/manual/en/memcache.get.php
您可以获得与遍历数组并为每个值调用 Memcached::get($key)
相同的结果。