• 技术文章 >后端开发 >php教程

    PHP中Memcache操作类及用法实例_php技巧

    2016-05-16 20:28:26原创406
    本文实例讲述了PHP中Memcache操作类及用法。分享给大家供大家参考。具体分析如下:

    复制代码 代码如下:

    <?php
    /* 内存缓存管理
    */
    class Yc_Memcache{
    private $memcache=null;

    public function __construct(){
    }
    /**
    * 连接数据库
    *
    * @param mixed $host
    * @param mixed $port
    * @param mixed $timeout
    */
    public function connect($host,$port=11211,$timeout=1){
    if(!function_exists(memcache_connect)){ return FALSE;}
    $this->memcache=@memcache_connect($host,$port,$timeout);
    if(emptyempty($this->memcache)){
    return FALSE;
    }else{
    return TRUE;
    }
    }
    /**
    * 存放值
    *
    * @param mixed $key
    * @param mixed $var
    * @param mixed $flag 默认为0不压缩 压缩状态填写:MEMCACHE_COMPRESSED
    * @param mixed $expire 默认缓存时间(单位秒)
    */
    public function set($key,$var,$flag=0,$expire=10){

    $f=@memcache_set($this->memcache,$key,$var,$flag,$expire);
    if(emptyempty($f)){
    return FALSE;
    }else{
    return TRUE;
    }
    }
    /**
    * 取出对应的key的value
    *
    * @param mixed $key
    * @param mixed $flags
    * $flags 如果此值为1表示经过序列化,
    * 但未经过压缩,2表明压缩而未序列化,
    * 3表明压缩并且序列化,0表明未经过压缩和序列化
    */
    public function get($key,$flags=0){
    $val=@memcache_get($this->memcache,$key,$flags);
    return $val;
    }
    /**
    * 删除缓存的key
    *
    * @param mixed $key
    * @param mixed $timeout
    */
    public function delete($key,$timeout=1){
    $flag=@memcache_delete($this->memcache,$key,$timeout);
    return $flag;
    }
    /**
    * 刷新缓存但不释放内存空间
    *
    */
    public function flush(){
    memcache_flush($this->memcache);
    }
    /**
    * 关闭内存连接
    *
    */
    public function close(){
    memcache_close($this->memcache);
    }
    /**
    * 替换对应key的value
    *
    * @param mixed $key
    * @param mixed $var
    * @param mixed $flag
    * @param mixed $expire
    */
    public function replace($key,$var,$flag=0,$expire=1){
    $f=memcache_replace($this->memcache,$key,$var,$flag,$expire);
    return $f;
    }
    /**
    * 开启大值自动压缩
    *
    * @param mixed $threshold 单位b
    * @param mixed $min_saveings 默认值是0.2表示20%压缩率
    */
    public function setCompressThreshold($threshold,$min_saveings=0.2){
    $f=@memcache_set_compress_threshold($this->memcache,$threshold,$min_saveings);
    return $f;
    }
    /**
    * 用于获取一个服务器的在线/离线状态
    *
    * @param mixed $host
    * @param mixed $port
    */
    public function getServerStatus($host,$port=11211){
    $re=memcache_get_server_status($this->memcache,$host,$port);
    return $re;
    }
    /**
    * 缓存服务器池中所有服务器统计信息
    *
    * @param mixed $type 期望抓取的统计信息类型,可以使用的值有{reset, malloc, maps, cachedump, slabs, items, sizes}
    * @param mixed $slabid cachedump命令会完全占用服务器通常用于 比较严格的调
    * @param mixed $limit 从服务端获取的实体条数
    */
    public function getExtendedStats($type='',$slabid=0,$limit=100){
    $re=memcache_get_extended_stats($this->memcache,$type,$slabid,$limit);
    return $re;
    }
    }

    /***********测试区域********************/
    $mem=new Yc_Memcache();

    $f=$mem->connect('125.64.41.138',12000);
    var_dump($f);
    if($f){
    // $mem->setCompressThreshold(2000,0.2);
    $mem->set('key','hello',0,30);
    // var_dump($mem->delete('key1'));
    // $mem->flush();
    // var_dump($mem->replace('hao','d'));
    // echo $mem->get('key');
    echo $mem->getServerStatus('127.0.0.1',12000);
    echo $mem->get('key');
    echo '
    ';  
    print_r($mem->getExtendedStats());
    }

    ?>

    希望本文所述对大家的PHP程序设计有所帮助。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:PHP Memcache 操作类 用法
    上一篇:yii2.0之GridView自定义按钮和链接用法_php实例 下一篇:PHP实现PDO的mysql数据库操作类_php技巧

    相关文章推荐

    • 碰到php变量 赋值怪事.• php之ZendFramewor篇(四)常见异常信息• 运用CI。路由方便出现404• PHP环境的筹建• Drupal中无刷新上传资料技术探讨

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网