首先,在实现所说的东西之前,要先确定好这么三件事:
1:安装了Memcached。
2:Memcached支持自己php所用版本。
3:开启了Memcached服务,并打开了php.ini的Memcached模块
如说上述条件都满足了,那么我就说一下如何去用php操作:
为了较为清晰的说明,而且空说无凭,所以我统一在下面的额代码里面加入测试,其中包括了我的所有测试过程:
还要说一下,这里主要测试的是数据的CURD操作。
<?php
//Memcached是面向对象来操作的
$mem=new Memcache; //创建memcache对象
if(!$mem->connect('127.0.0.1',11211)){
die("连接失败"); //退出
} //连接memcached,参数的IP地址,11211端口
//增加一组数据:参数分别表示:键名-键值-压缩-保存时间
/*
//增加字符串
if($mem->add('key1','北京',MEMCACHE_COMPRESSED,60)){
echo "添加数据成功";
}
*/
//增加数字
/*
if($mem->add('key1',123456,MEMCACHE_COMPRESSED,120)){
echo "添加数字成功";
}*/
//添加数组
/*
$arr = array('北京','天津');
if($mem->add('key1',$arr,MEMCACHE_COMPRESSED,120)){
echo "添加数组成功".'<br/>';
}
*/
//添加对象
/*
class Dog{
public $name;
public $age;
public function __construct($name,$age){
$this->name=$name;
$this->age=$age;
}
}
$dog1=new Dog('小白',40);
if($mem->add('key1',$dog1,MEMCACHE_COMPRESSED,60)){
echo "添加对象成功";
}
*/
//添加空值(0,null,(),false,0.0, “0” 空数组,空对象)
/*
if($mem->add('key1',null,MEMCACHE_COMPRESSED,60)){
echo "添加空值成功";
}*/
//添加资源类型
/*
$con=mysql_connect('localhost','root','toor');
//var_dump($con);
//事实说明Memcached不能够保存资源类型数据
if(!$con){
echo "添加资源失败";
}else{
if($mem->add('key1',$con,MEMCACHE_COMPRESSED,60)){
echo "添加资源成功";
}
}
*/
//两种情况,键名不存在:就创建数据,反之修改
/*
if($mem->set('key1','上海',MEMCACHE_COMPRESSED,60)){
echo "修改数据成功";
}
*/
//查询数据,和控制台的方式相同,返回的是结果
$value=$mem->get('key1');
print_r($value);
?>
以上是php操作Memcached的各种数据方式,有两点要说
1:当保存输出对象数据的时候,如果在另一个页面去输出,会出现数据不完整的错误,可以引入类文件去解决。
2:实际开发中,可能需要进行序列化处理,这个会在我的下一篇博文介绍