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 相关文章推荐
Win2003服务器安全加固设置--进一步提高服务器安全性
May 23 PHP
PHP全概率运算函数(优化版) Webgame开发必备
Jul 04 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
Jun 22 PHP
php去掉URL网址中带有PHPSESSID的配置方法
Jul 08 PHP
destoon实现VIP排名一直在前面排序的方法
Aug 21 PHP
PHP使用MPDF类生成PDF的方法
Dec 08 PHP
YII Framework框架教程之使用YIIC快速创建YII应用详解
Mar 15 PHP
[原创]php使用curl判断网页404(不存在)的方法
Jun 23 PHP
php字符串操作常见问题小结
Oct 11 PHP
php实现的redis缓存类定义与使用方法示例
Aug 09 PHP
PHP面向对象程序设计继承用法简单示例
Dec 28 PHP
thinkPHP5.1框架中Request类四种调用方式示例
Aug 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 存取 MySQL 数据库的一个例子
2006/10/09 PHP
关于Laravel Route重定向的一个注意点
2017/01/16 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
基于PHP实现微信小程序客服消息功能
2019/08/12 PHP
初识javascript 文档碎片
2010/07/13 Javascript
利用javascript实现web页面中指定区域打印
2013/10/30 Javascript
jquery获取当前点击对象的value方法
2014/02/28 Javascript
如何将php数组或者对象传递给javascript
2014/03/20 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
Bootstrap每天必学之表单
2015/11/23 Javascript
JS全局变量和局部变量最新解析
2016/06/24 Javascript
EsLint入门学习教程
2017/02/17 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
Angular实现下拉框模糊查询功能示例
2018/01/03 Javascript
详解Js里的for…in和for…of的用法
2019/03/28 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
微信小程序以7天为周期连续签到7天功能效果的示例代码
2020/08/20 Javascript
Vue循环中多个input绑定指定v-model实例
2020/08/31 Javascript
如何在VUE中使用vue-awesome-swiper
2021/01/04 Vue.js
python使用psutil模块获取系统状态
2016/08/27 Python
Python爬取附近餐馆信息代码示例
2017/12/09 Python
Python设计模式之MVC模式简单示例
2018/01/10 Python
Python实现二叉树的常见遍历操作总结【7种方法】
2019/03/06 Python
解决python3 requests headers参数不能有中文的问题
2019/08/21 Python
解决Python pip 自动更新升级失败的问题
2020/02/21 Python
Django choices下拉列表绑定实例
2020/03/13 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
2020/03/28 Python
Python基于codecs模块实现文件读写案例解析
2020/05/11 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
2020/07/30 Python
Python eval函数原理及用法解析
2020/11/14 Python
自考毕业自我鉴定范文
2013/10/27 职场文书
安全例会汇报材料
2014/08/23 职场文书
中秋客户感谢信
2015/01/22 职场文书
人民调解协议书
2016/03/21 职场文书
Redis 哨兵机制及配置实现
2022/03/25 Redis
Android自定义双向滑动控件
2022/04/19 Java/Android