1. Memcache安装
检验memcached是否下载完,可以在[控制面板]->[管理工具]->[服务]中查看到memcached服务
终端输入 Stats,显示如下:
输入:quit退出
memcache 管理:
linux常用组合来修改相关配置(在windows下可能不能用):
基本的memcached客户端命令
简单把设置的值遍历出来
memcache php扩展模块安装
windows点击下载
将扩展文件放到对应版本php的模块文件(ext)中
打开php.ini配置文件,将extension=memcache.dll前的分号去掉,重启apache就可以了
memcache在php中的使用
<?php
//创建memcache对象
$mem=new Memcache;
//连接memcache服务器
$mem->connect('localhost',11211);
//操作
//add添加
class test{
public $a=1;
public $b=2;
public $c=3;
}
$mem->add('one','this is memcache test!',
MEMCACHE_COMPRESSED,time()+60*60*24*31);
$mem->add('two',array("111","222","333"),MEMCACHE_COMPRESSED,time()+60*60*24*31);
$mem->add('three',new test(),MEMCACHE_COMPRESSED,time()+60*60*24*31);
//修改操作
//把上面add换成set,没有键值则是添加
$mem->set('one','this is set!',
MEMCACHE_COMPRESSED,time()+60*60*24*31);
//取值get
$mem->get('one');
var_dump($mem->get('three'));
//删除delete
$mem->delete('one');
//清除所有
$mem->flush();
//关闭memcache连接
$mem->close();
利用memcache进行数据库数据缓存
<?php
//创建memcache对象
$mem= new Memcache;
//连接memcache服务器
$mem->connect('localhost',11211);
//数据库的连接和操作
/*
*判断如果内存中有数据直接取出,没有的话从数据库中查询;
*/
$sql="select id,name,age from test order by id";
//设置键为md5($sql),这样服务器每次使用同样的sql语句就会走内存
$key=MD5($sql);
//直接从内存memcache要数据
$data=$mem->get($key);
//判断
if(empty($data)){
try{
$pdo= new PDO('mysql:host=localhost;dbname=test','root','910420');
}catch(PDOException $e){
echo "数据库连接失败:".$e->getMessage();
}
//获取数据,执行语句
$stmt=$pdo->prepare($sql);
$stmt->execute();
//获取所有数据
$data=$stmt->fetchAll(PDO::FETCH_ASSOC);
//把数据插入到memcache内存中
$mem->set($key,$data,MEMCACHE_COMPRESSED,5);
var_dump($data);
}
//关闭数据库
$mem->close();
设置分布式的memcache存取
分布式的存取只需要把上述代码的连接connect换成多台服务器就可以了,连接代码如下:
$mem->addServer('192.168.1.137',11211);