前面已经说过了memcached是支持集群和分布式的,开发中我们可以把要缓存的数据放到不同的机器上,取出缓存数据也可以从不同服务器取出,只需要使用addServer方法即可代码也特简单
1.把缓存数据分布到不同的memcached服务所在机器上
<?php
$mem=new Memcache();
//添加memcached服务,添加多个不影响程序性能
//最后一个参数表示权重
$mem->addserver("127.0.0.1","11211",80);
$mem->addserver("127.0.0.1","11210",20);
//数据添加到哪一个memcache由程序决定
$mem->set("multi", "mem集群",MEMCACHE_COMPRESSED,60);
?>
2.从分布式memcached取得数据
<?php
$mem=new Memcache();
$mem->addserver("127.0.0.1","11211");
$mem->addserver("127.0.0.1","11210");
//取得内存里的数据
$str=$mem->get("multi");
echo $str;
?>
3.memcached对session的支持
如果开发的web项目比较大,那么session的访问就比较频繁了,为了使得访问速度提高一些memcached也是一个不错的选择,为了使得php能够把session存储在memcached里可以在php.ini配置session.save_handler为memcache,session.save_path改为tcp://127.0.0.1:11211 这个地址就是memcached服务的访问地址,但是不推荐这样做,在php文件里临时指定比较合适
<?php
ini_set("session.save_handler", "memcache");
ini_set("session.save_path", "tcp://127.0.0.1:11211");
session_start();
$_SESSION["username"]="pan wei bo";
?>
4.从memcached里取出session
<?php
ini_set("session.save_handler", "memcache");
ini_set("session.save_path", "tcp://127.0.0.1:11211");
session_start();
echo $_SESSION["username"];
?>