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文件上传实例详解!!!
Jan 02 PHP
深入for,while,foreach遍历时间比较的详解
Jun 08 PHP
PHP中fwrite与file_put_contents性能测试代码
Aug 02 PHP
php递归方法实现无限分类实例代码
Feb 28 PHP
php使用curl和正则表达式抓取网页数据示例
Apr 13 PHP
使用GD库生成带阴影文字的图片
Mar 27 PHP
php恢复数组的key为数字序列的方法
Apr 28 PHP
php判断两个日期之间相差多少个月份的方法
Jun 18 PHP
PHP Smarty模版简单使用方法
Mar 30 PHP
各种快递查询--Api接口
Apr 26 PHP
XHProf报告字段含义的解析
May 17 PHP
php 防止表单重复提交两种实现方法
Nov 03 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
比较简单的百度网盘文件直链PHP代码
2013/03/24 PHP
8个PHP数组面试题
2015/06/23 PHP
php禁用cookie后session设置方法分析
2016/10/19 PHP
laravel 输出最后执行sql 附:whereIn的使用方法
2019/10/10 PHP
Javascript实现重力弹跳拖拽运动效果示例
2013/06/28 Javascript
深入分析JQuery和JavaScript的异同
2014/10/23 Javascript
jQuery应用之jQuery链用法实例
2015/01/19 Javascript
Jquery 实现table样式的设定
2015/01/28 Javascript
js+HTML5实现视频截图的方法
2015/06/16 Javascript
JavaScript事件详细讲解
2016/06/27 Javascript
修改jquery中dialog的title属性方法(推荐)
2016/08/26 Javascript
js实现文字向上轮播功能
2017/01/13 Javascript
Angular2使用Angular CLI快速搭建工程(一)
2017/05/21 Javascript
JS鼠标3次点击事件实现代码及扩展思路
2017/09/12 Javascript
通过 JS 判断页面是否有滚动条的实现方法
2018/04/05 Javascript
js使用Promise实现简单的Ajax缓存
2018/11/14 Javascript
跨域解决之JSONP和CORS的详细介绍
2018/11/21 Javascript
vue.js实现回到顶部动画效果
2019/07/31 Javascript
layui实现数据表格自定义数据项
2019/10/26 Javascript
基于JavaScript实现表格隔行换色
2020/05/08 Javascript
vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作
2020/11/16 Javascript
python 判断自定义对象类型
2009/03/21 Python
python自动化测试之连接几组测试包实例
2014/09/28 Python
使用python在本地电脑上快速处理数据
2017/06/22 Python
关于python写入文件自动换行的问题
2018/06/23 Python
Python字典对象实现原理详解
2019/07/01 Python
Python+OpenCV检测灯光亮点的实现方法
2020/11/02 Python
de Bijenkorf比利时官网:荷兰最知名的百货商店
2017/06/29 全球购物
端口镜像是怎么实现的
2014/03/25 面试题
PHP引擎php.ini参数优化深入讲解
2021/03/24 PHP
中医临床专业自我鉴定范文
2014/01/15 职场文书
党员承诺书范文
2014/05/19 职场文书
司法局群众路线教育实践活动整改措施思想汇报
2014/10/13 职场文书
2014年应急管理工作总结
2014/11/26 职场文书
《折线统计图》教学反思
2016/02/22 职场文书
MongoDB使用场景总结
2022/02/24 MongoDB