Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Memcached使用php传递数据_Php_Caching - Fatal编程技术网

Memcached使用php传递数据

Memcached使用php传递数据,php,caching,Php,Caching,我已在windows系统上安装了memcached 1.4.4-14。我已经开始服务,一切正常。现在我所要做的就是使用IIS提供的.php对其进行测试 所以我修改了一个basic index.php页面并浏览了IIS。我可以呈现页面和general.php工作。memcache什么也没发生。关于我需要安装哪些先决条件,有太多的困惑。我不知道哪些是必要的。我安装的PHP是一个新的干净安装,只有PHP_memcache.dll扩展转储在.PHP中 值得注意的是,在phpinfo中,我看不到对memc

我已在windows系统上安装了memcached 1.4.4-14。我已经开始服务,一切正常。现在我所要做的就是使用IIS提供的.php对其进行测试

所以我修改了一个basic index.php页面并浏览了IIS。我可以呈现页面和general.php工作。memcache什么也没发生。关于我需要安装哪些先决条件,有太多的困惑。我不知道哪些是必要的。我安装的PHP是一个新的干净安装,只有PHP_memcache.dll扩展转储在.PHP中

值得注意的是,在phpinfo中,我看不到对memcache的引用

我想要一些基本的帮助

这是我正在使用的示例,我相信这是memcache会话转储的标准测试

session_start();
header("Content-type: text/plain");
$memcache = new Memcache;

$memcache->connect("localhost",11211); # You might need to set "localhost" to "127.0.0.1"5
echo $memcache->get(session_id());

谢谢。

如果您对使用压缩感兴趣,请注意,至少对于PHP版本5.3.2和Memcache版本3.0.4,在检索值为数字或布尔类型的键时,PHP会发出以下通知:

消息:MemcachePool::get():未能解压缩数据

解决方法是在设置变量类型或将其添加到Memcache之前测试变量类型,甚至将其转换为字符串

<?php
$key = 'mc_key';
$value = 12345;
$compress = is_bool($value) || is_int($value) || is_float($value) ? false :             MEMCACHE_COMPRESSED;

$mc= new Memcache;
$mc->connect('localhost', 11211);
$mc->set($key, $value, $compress);

echo $mc->get($key);

//Alternative is to cast the variable
$value = is_scalar($value) ? (string)$value : $value;
$mc->set($key, $value, MEMCACHE_COMPRESSED);
?>