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 相关文章推荐
Smarty模板快速入门
Jan 04 PHP
PHP定时自动生成静态HTML的实现代码
Jun 20 PHP
约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
Oct 12 PHP
md5 16位二进制与32位字符串相互转换示例
Dec 30 PHP
php递归删除目录与文件的方法
Jan 30 PHP
PHP实现通过正则表达式替换回调的内容标签
Jun 15 PHP
php结合md5实现的加密解密方法
Jan 25 PHP
基于Swoole实现PHP与websocket聊天室
Aug 03 PHP
PHP CURL post数据报错 failed creating formpost data
Oct 16 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
Aug 28 PHP
PHP实现唤起微信支付功能
Feb 18 PHP
php 策略模式原理与应用深入理解
Sep 25 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
Http 1.1 Etag 与 Last-Modified提高php效率
2008/01/10 PHP
php sybase_fetch_array使用方法
2014/04/15 PHP
php简单smarty入门程序实例
2015/06/11 PHP
两款万能的php分页类
2015/11/12 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
onpropertypchange
2006/07/01 Javascript
javascript 模式设计之工厂模式学习心得
2010/04/27 Javascript
script标签的 charset 属性使用说明
2010/12/04 Javascript
纯文字版返回顶端的js代码
2013/08/01 Javascript
Jquery 类网页微信二维码图块滚动效果具体实现
2013/10/14 Javascript
jquery实现鼠标拖动图片效果示例代码
2014/01/09 Javascript
jquery为页面增加快捷键示例
2014/01/31 Javascript
兼容最新firefox、chrome和IE的javascript图片预览实现代码
2014/08/08 Javascript
用js通过url传参把数据从一个页面传到另一个页面
2014/09/01 Javascript
JavaScript中的getMilliseconds()方法使用详解
2015/06/10 Javascript
基于Javascript实现的不重复ID的生成器
2016/12/25 Javascript
Vue.js 2.0窥探之Virtual DOM到底是什么?
2017/02/10 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
2018/02/09 Javascript
详解服务端预渲染之Nuxt(介绍篇)
2019/04/07 Javascript
layui表格设计以及数据初始化详解
2019/10/26 Javascript
vue input标签通用指令校验的实现
2019/11/05 Javascript
详细介绍Python语言中的按位运算符
2013/11/26 Python
python获取文件版本信息、公司名和产品名的方法
2014/10/05 Python
python实现两张图片拼接为一张图片并保存
2019/07/16 Python
Django Rest framework解析器和渲染器详解
2019/07/25 Python
Linux如何命名文件--使用文件名时应注意
2012/01/22 面试题
毕业生个人求职信范例分享
2013/12/17 职场文书
班组长安全职责
2014/01/05 职场文书
销售人员自我评价
2014/02/01 职场文书
小学校长竞聘演讲稿
2014/05/16 职场文书
民主生活会汇报材料
2014/12/15 职场文书
反邪教学习心得体会
2016/01/15 职场文书
利用Python判断整数是否是回文数的3种方法总结
2021/07/07 Python
gtx1650怎么样 gtx1650显卡相当于什么级别
2022/04/08 数码科技
Android开发实现极为简单的QQ登录页面
2022/04/24 Java/Android