PHP中Memcache操作类及用法实例


Posted in PHP onDecember 12, 2014

本文实例讲述了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 '<pre>';  

 print_r($mem->getExtendedStats());  

}  

   

?>

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

PHP 相关文章推荐
PHP开发文件系统实例讲解
Oct 09 PHP
PHP产生随机字符串函数
Dec 06 PHP
php的数组与字符串的转换函数整理汇总
Jul 18 PHP
php实现mysql事务处理的方法
Dec 25 PHP
thinkPHP中验证码的简单使用方法
Dec 26 PHP
YII Framework框架教程之日志用法详解
Mar 14 PHP
PHP 绘制网站登录首页图片验证码
Apr 12 PHP
php版微信公众账号第三方管理工具开发简明教程
Sep 23 PHP
YII中Ueditor富文本编辑器文件和图片上传的配置图文教程
Mar 15 PHP
PHP实现上传多图即时显示与即时删除的方法
May 09 PHP
PHP实现将标点符号正则替换为空格的方法
Aug 09 PHP
PHP共享内存使用与信号控制实例分析
May 09 PHP
PHP实现PDO的mysql数据库操作类
Dec 12 #PHP
PHP实现的sqlite数据库连接类
Dec 12 #PHP
php+mysql数据库实现无限分类的方法
Dec 12 #PHP
PHP中if和or运行效率对比
Dec 12 #PHP
php实现高效获取图片尺寸的方法
Dec 12 #PHP
CI框架中cookie的操作方法分析
Dec 12 #PHP
jQuery Mobile + PHP实现文件上传
Dec 12 #PHP
You might like
全国中波电台频率表
2020/03/11 无线电
php部分常见问题总结
2008/03/27 PHP
discuz Passport 通行证 整合笔记
2008/06/30 PHP
php常用Output和ptions/Info函数集介绍
2013/06/19 PHP
PHP采集类Snoopy抓取图片实例
2014/06/19 PHP
PHP大批量插入数据库的3种方法和速度对比
2014/07/08 PHP
PHP jQuery+Ajax结合写批量删除功能
2017/05/19 PHP
javascript实现仿银行密码输入框效果的代码
2007/12/13 Javascript
escape、encodeURI 和 encodeURIComponent 的区别
2009/03/02 Javascript
png在IE6 下无法透明的解决方法汇总
2015/05/21 Javascript
Angular2内置指令NgFor和NgIf详解
2016/08/03 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
2016/11/20 Javascript
详解Nodejs基于mongoose模块的增删改查的操作
2016/12/21 NodeJs
jQuery实现的checkbox级联选择下拉菜单效果示例
2016/12/26 Javascript
Vue数据驱动模拟实现2
2017/01/11 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
Vue-不允许嵌套式的渲染方法
2018/09/13 Javascript
Nodejs实现的操作MongoDB数据库功能完整示例
2019/02/02 NodeJs
基于vue、react实现倒计时效果
2019/08/26 Javascript
vue-autoui自匹配webapi的UI控件的实现
2020/03/20 Javascript
python3中函数参数的四种简单用法
2018/07/09 Python
pandas把所有大于0的数设置为1的方法
2019/01/26 Python
PIL对上传到Django的图片进行处理并保存的实例
2019/08/07 Python
使用Python实现正态分布、正态分布采样
2019/11/20 Python
python argparse模块通过后台传递参数实例
2020/04/20 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
2021/03/04 Python
CSS3教程(6):创建网站多列
2009/04/02 HTML / CSS
美国校园市场:OCM
2017/06/08 全球购物
介绍一下linux文件系统分配策略
2013/02/25 面试题
幼教毕业生自我鉴定
2014/01/12 职场文书
旅游个人求职信范文
2014/01/30 职场文书
企业整改报告范文
2014/11/08 职场文书
教师节校长致辞
2015/07/31 职场文书
高中数学教学反思范文
2016/02/18 职场文书
一文解答什么是MySQL的回表
2022/08/05 MySQL