美文网首页
Memcache缓存(二)

Memcache缓存(二)

作者: PHPer_ | 来源:发表于2017-09-04 09:19 被阅读63次

    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、定期查看缓存的分布状况和击中情况;

    相关文章

      网友评论

          本文标题:Memcache缓存(二)

          本文链接:https://www.haomeiwen.com/subject/ixbsjxtx.html