memcached读写session的问题

OSC首席保安 发布于 2013/01/22 11:18
阅读 1K+
收藏 1

Linux上装了Memcached服务,并且装了PHP的memcached扩展,自己测试并没问题,测试无非就是set get之类的。

这几天弄session写memcached,于是写了以下这段代码:

<?php
ini_set('session.save_handler','memcached');
ini_set('session.save_path','www.82.com:11211');
session_start();
$_SESSION['name'] = 'testtest1234';
echo $_SESSION['name'];
echo "\n";
echo session_id();
echo "\n";
?>
www.82.com是本地绑定好的域名,指向一个虚拟机的。

根据session_id,写一段get的代码。

<?php
$memcached = new Memcached();
$memcached->addServer('localhost','11211');
//$name = $memcached->get('83cuskmnfmo5flel20m3o53u73');
//$name = $memcached->set('aa','bb');
$key = $_GET['key'];
$name = $memcached->get($key);
var_dump($name);
echo "\n";
?>
返回bool(false)。

后来我直接ssh 82这台虚拟机里,telnet localhost 11211,  get btd6po35kdffd57g4ihpdl4jc2, 返回空。


弄了一整天之后实在没辙,装了memcache扩展,改用memcache连接。

<?php
ini_set('session.save_handler','memcache');
ini_set('session.save_path','tcp://www.82.com:11211');
session_start();
$_SESSION['name'] = 'testtest1234';
echo $_SESSION['name'];
echo "\n";
echo session_id();
echo "\n";
?>
再根据session_id来get一下,有值了。。。

<?php
$mc = new Memcache();
$mc->addServer('localhost',11211);
echo $mc->get($_GET['key']);
echo "\n";
?>
输出这个:name|s:10:"testtest1234";


请问这是怎么回事儿,我哪弄错了?

加载中
0
合肥华仔
合肥华仔

ini_set('session.save_handler','memcached');
改成
ini_set('session.save_handler','memcache');

返回顶部
顶部