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部分常见问题总结
Mar 27 PHP
PHP stristr() 函数(不区分大小写的字符串查找)
Jun 03 PHP
php include加载文件两种方式效率比较
Aug 08 PHP
PHP调用wsdl文件类型的接口代码分享
Nov 19 PHP
PHP生成可点击刷新的验证码简单示例
May 13 PHP
php使用file函数、fseek函数读取大文件效率对比分析
Nov 04 PHP
PHP更安全的密码加密机制Bcrypt详解
Jun 18 PHP
PHP代码重构方法漫谈
Apr 17 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
May 24 PHP
php strftime函数的详细用法
Jun 21 PHP
PHP实现微信退款功能
Oct 02 PHP
php面试中关于面向对象的相关问题
Feb 13 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下获取http状态的实现代码
2014/05/09 PHP
2个比较经典的PHP加密解密函数分享
2014/07/01 PHP
thinkPHP3.2简单实现文件上传的方法
2016/05/16 PHP
JQUERY的属性选择符和自定义选择符使用方法(二)
2011/04/07 Javascript
jQuery实战之品牌展示列表效果
2011/04/10 Javascript
JqGrid web打印实现代码
2011/05/31 Javascript
jQuery代码优化 选择符篇
2011/11/01 Javascript
jQuery中fadeIn、fadeOut、fadeTo的使用方法(图片显示与隐藏)
2013/05/08 Javascript
node.js中的http.response.end方法使用说明
2014/12/14 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
2014/12/15 Javascript
JavaScript Math.floor方法(对数值向下取整)
2015/01/09 Javascript
JQuery实现的按钮倒计时效果
2015/12/23 Javascript
JavaScript中的冒泡排序法
2016/08/03 Javascript
js初始化验证实例详解
2016/11/26 Javascript
JS Input里添加小图标的两种方法
2017/11/11 Javascript
详解vue中的computed的this指向问题
2018/12/05 Javascript
微信小程序Echarts覆盖正常组件问题解决
2019/07/13 Javascript
vue组件中实现嵌套子组件案例
2020/08/31 Javascript
python实现人脸识别代码
2017/11/08 Python
Python实现针对给定字符串寻找最长非重复子串的方法
2018/04/21 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
2018/10/17 Python
python 将对象设置为可迭代的两种实现方法
2019/01/21 Python
pandas DataFrame的修改方法(值、列、索引)
2019/08/02 Python
Python使用进程Process模块管理资源
2020/03/05 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
2020/05/19 Python
Python图像阈值化处理及算法比对实例解析
2020/06/19 Python
python中Django文件上传方法详解
2020/08/05 Python
python 线程的五个状态
2020/09/22 Python
Python 下载Bing壁纸的示例
2020/09/29 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
前端面试必备之CSS3的新特性
2017/09/05 HTML / CSS
基于zepto的插件之移动端无缝向上滚动并上下触摸滑动实例代码
2016/12/20 HTML / CSS
一加手机美国官方网站:OnePlus美国
2019/09/19 全球购物
《神奇的鸟岛》教学反思
2016/02/22 职场文书
Python Socket编程详解
2021/04/25 Python
js基于div丝滑实现贝塞尔曲线
2022/09/23 Javascript