1、什么是Memcache
分布式高速缓存系统,存储在内存中
2、什么时候使用Memcache
在应用和数据库当中添加一个缓冲层,当第一次读取数据后,把数据存储在Memcache中,当第二次或者之后读取数据时,就从Memcache中读取,从而减轻Mysql数据库等服务器的压力。
Memcache使用场景:
- 非持久化存储:对数据存储要求不高
- 分布式存储:不适合单机使用
- key/value存储:格式简单,不支持List、Array数据格式
Memcache服务端和客户端的安装,自行google 百度。
PHP中使用Memcache
系统类:addServer,addServers,getStats,getVersion
数据类:add,set,delete,flush,replace,increment,get
进阶类:setMulti,deleteMulti,getMulti,getResultCode,getResultMessage
$m = new Memcached();
$m->addServer(‘127.0.0.1’,11211);
$m->add(‘mkey’,’mvalue’,600); // 参数1:键 参数2:键对应的值 参数3:保存时间(秒)
$m->set(‘mkey1’, ‘mvalue1’, 600); // 当对应键没有值存在时,新增一条,当存在时,覆盖掉原来的值// increment 对缓存值进行自增
$m->set(‘num’, 5, 0);
$m->increment(‘num’, 2); // 对num所对应对值自增2
// decrement 对缓存值进行自减
$m->decrement(‘num’, 3); // 对num所对应的值自减3// 删除数据
$m->delete(‘mkey’); // 删除对应键值对
$m->flush(); // 清空memcache所有缓存值,慎用echo $m->get(‘mkey’); // 获取键所对应的值
// 一次设置多个值、一次获取多个值、一次删除多条数据
$array = array(
‘key’ => ‘value’,
‘key2’ => ‘value2’,
);
$m->setMulti($array, 0); // 参数1:键值对数组 参数2:保存时间
$res = $m->getMulti(array(‘key’, ‘key2’)); // 参数:键数组
print_r($res);
$m->deleteMulti(array(‘key’, ‘key2’)); // 参数:键数组echo $m->getResultCode(); // 获取上一次操作返回的编码
echo $m->getResultMessage(); // 获取上一次操作返回的信息
封装自己的Memcache类
扩展性
可调试
尽量简便的操作,一个方法多种功能
项目中使用Memcache
1.即时生成缓存
2.提前生成缓存
3.永久缓存