PHP中Memcache操作类及用法实例

yipeiwu_com6年前PHP代码库

本文实例讲述了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 之Section与Cookie使用总结

SESSION与COOKIE区别:   Session 将信息保存在服务器上.服务器在接受到唯一的SESSION_ID后,根据这个ID获取相关数据,然后将信息传递到客户端(浏览器).  ...

php实现随机显示图片方法汇总

php通过rand()函数产生随机数,这个函数可以产生一个指定范围的数字 这段代码通过产生的随机数,随机选择图片 <html> <body> <&#...

浅析Yii中使用RBAC的完全指南(用户角色权限控制)

写在前面    * 我的feed地址已经修改为: http://feeds.imdong.net ,请更新您的阅读器。   ...

PHP中文字符串截断无乱码解决方法

一个比较好用的字符串截取函数: function substring($str, $start, $length){ //比较好用字符串截取函数 $len = $length;...

PHP使用PDO抽象层获取查询结果的方法示例

本文实例讲述了PHP使用PDO抽象层获取查询结果的方法。分享给大家供大家参考,具体如下: PHP使用PDO抽象层获取查询结果,主要有三种方式: (1)PDO::query()查询。 看下...