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 相关文章推荐
在任意字符集下正常显示网页的方法一
Apr 01 PHP
在PHP中读取和写入WORD文档的代码
Apr 09 PHP
MySQL数据源表结构图示
Jun 05 PHP
解析MySql与Java的时间类型
Jun 22 PHP
php 批量替换程序的具体实现代码
Oct 04 PHP
php中autoload的用法总结
Nov 08 PHP
windows服务器中检测PHP SSL是否开启以及开启SSL的方法
Apr 25 PHP
WAMP环境中扩展oracle函数库(oci)
Jun 26 PHP
php实现表单多按钮提交action的处理方法
Oct 24 PHP
PHP简单的MVC框架实现方法
Dec 01 PHP
PHP中的正则表达式实例详解
Apr 25 PHP
php记录搜索引擎爬行记录的实现代码
Mar 02 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传输数据的代码
2007/11/13 PHP
ThinkPHP基本的增删查改操作实例教程
2014/08/22 PHP
9段PHP实用功能的代码推荐
2014/10/14 PHP
php异步多线程swoole用法实例
2014/11/14 PHP
PHP判断手机是IOS还是Android
2015/12/09 PHP
PHP实现linux命令tail -f
2016/02/22 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
2020/01/07 PHP
jquery的$(document).ready()和onload的加载顺序
2010/05/26 Javascript
jquery.validate使用攻略 第一部
2010/07/01 Javascript
this和执行上下文实现代码
2010/07/01 Javascript
angularjs基础教程
2014/12/25 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
2015/07/27 Javascript
JS Array创建及concat()split()slice()的使用方法
2016/06/03 Javascript
JavaScript面向对象精要(下部)
2017/09/12 Javascript
json字符串对象转换代码实例
2019/09/28 Javascript
使用webpack搭建vue环境的教程详解
2019/12/31 Javascript
Javascript作用域和作用域链原理解析
2020/03/03 Javascript
[04:39]显微镜下的DOTA2第十三期—Pis卡尔个人秀
2014/04/04 DOTA
Python 实现文件打包、上传与校验的方法
2019/02/13 Python
使用PyCharm进行远程开发和调试的实现
2019/11/04 Python
python flask搭建web应用教程
2019/11/19 Python
python实现QQ邮箱发送邮件
2020/03/06 Python
Windows 下python3.8环境安装教程图文详解
2020/03/11 Python
CSS3 Flexbox中flex-shrink属性的用法示例介绍
2013/12/30 HTML / CSS
迪斯尼商品官方网站:ShopDisney
2016/08/01 全球购物
俄罗斯极限运动网上商店:Board Shop №1
2020/12/18 全球购物
淘宝中秋节活动方案
2014/01/31 职场文书
优秀经理获奖感言
2014/03/04 职场文书
厨师个人自我鉴定范文
2014/04/19 职场文书
幼儿老师求职信
2014/06/30 职场文书
2015年银行柜员工作总结报告
2015/04/01 职场文书
初中教师德育工作总结2015
2015/05/12 职场文书
毕业论文答辩开场白和结束语
2015/05/27 职场文书
小学教代会开幕词
2016/03/04 职场文书
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
2021/04/01 PHP
MySQL连接查询你真的学会了吗?
2021/06/02 MySQL