Memcached使用php传递数据

时间:2014-03-20 11:53:33

标签: php caching

我在Windows系统上安装了memcached 1.4.4-14。我已经启动了服务,一切都井然有序。现在我要做的就是使用.php测试它,使用IIS提供。

所以我找到了一个基本的index.php页面并浏览了IIS。我可以渲染页面和一般的.php工作。它只是没有发生在memcache上。关于我需要安装哪些先决条件存在很多困惑。我无法理解哪些是必不可少的。我安装的PHP是一个新的干净安装,只有.php中转储了php_memcache.dll扩展名。

值得注意的是,在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());

谢谢。

1 个答案:

答案 0 :(得分:1)

如果您对使用压缩感兴趣,请注意,至少对于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);
?>