PHP中使用Memcache
Memcache常用方法三大类:
- 系统类
addServer,addServers,getStats,getVersion - 数据类
add,set,delete,flush,replace,increment,get - 进阶类
setMulti,deleteMulti,getMulti,getResultCode,getResultMessage
更多操作方法可以去PHP官网查阅手册
系统类
$m = new Memcached();
//添加一台服务器,这里端口号默认为11211
$m->addServer('127.0.0.1',11211);
//添加多台服务器
$array = array(
array('127.0.0.1',11211),
array('127.0.0.2',11211),
);
$m->addServers($array);
//getStats打印Memcache服务器的状态
print_r($m->getStats());
数据类
- 增加数据
//实例化扩展类
$m = new memcached();
//添加一台服务器
$m->addServer('127.0.0.1',11211);
//新增数据,当数据不存在时新增,当数据已经存在覆盖原有数据,600秒后失效,为0表示永久生效
$m->set('key','value',600);
echo $m->get('key');
- 删除数据
//清空指定键名的数据
$m->delete('key');
//清空Memcache所有缓存数据
$m->flush();
echo $m->get('key');
- 整型数据递增
$m->set('num',5,0);
//刷新页面加5,测试时刷新一次要屏蔽上面的添加数据代码
$m->increment('num',5);
echo $m->get('num');
- 整型数据递减
$m->set('num',5,0);
//刷新页面减5,测试时刷新一次要屏蔽上面的添加数据代码
$m->decrement('num',5);
echo $m->get('num');
进阶类(只支持Memcached扩展使用)
- 增加多条数据
//实例化扩展类
$m = new memcached();
//添加一台服务器
$m->addServer('127.0.0.1',11211);
$data = array(
'key' => 'vlaue',
'key2' => 'vlaue2',
);
$m->setMulti($data,0);
//打印多条数据
$result = $m->getMulti(array('key','key2'));
print_r($result);
- 删除多条数据
$m->deleteMulti(array('key','key2'));
//返回最后一次操作的结果代码,手册上查看编码对应的内容
echo $m->getResultCode();
//返回最后一次操作的结果描述消息
echo $m->getResultMessage();
项目中使用Memcache
1、即时生成缓存
首次访问就生成缓存,之后再访问就从缓存中调取数据;
2、提前生成缓存
适用于网站访问量大的网站,可以使用定时脚本的方式提前生成缓存;
3、永久缓存
适用于网站的单页,例如关于我们页面它修改的频率非常的低,那么可以生成一个永久缓存;
注意事项
1、不要在单机模式中使用Memcached;
2、不要只使用Memcache保存重要数据,要把Memcache当成缓存去用,不要把它当做存储数据的数据库使用;当服务器重启或者停电会造成Memcache缓存数据丢失的问题;
3、定期查看缓存的分布状况和击中情况;