教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 PHP调用MEMCACHE高速缓存技术实例

PHP调用MEMCACHE高速缓存技术实例

发布时间:2021-01-01   编辑:jiaochengji.com
教程集为您提供PHP调用MEMCACHE高速缓存技术实例等资源,欢迎您收藏本站,我们将为您提供最新的PHP调用MEMCACHE高速缓存技术实例资源
在项目中,涉及大访问量时,合理的使用缓存能减轻数据库的压力,同时提升用户体验。即在非实时性的需求的前提下,一小段时间内(若干秒),用于显示的数据从缓存中获取的,而不用直接读取数据库,能有效的减少数据库的读取压力。这里记录一下php语言使用memcache的情形:

首先,我们建立一个memcachepool,可以根据不同的配置读取,生成不同的memcache实例。用到$memcache->addServer($host,$port,$flag);向连接池中添加一个memcache服务器。代码示例如下:

class memcachePool{      private static $instance;      private $memcacheList = array();     private function __construct(){      }      public static function getInstance(){          if(self::$instance != null)              return self::$instance;          self::$instance = new memcachePool();          return self::$instance;      }     /**      * get memcache object from pool      * @param  [type] $host 服务器      * @param  [type] $port 端口      * @param  [type] $flag 控制是否使用持久化连接。默认TRUE      * @return [type]      */      public function getMemcache($host,$port,$flag){          if(isset($this->memcacheList[$host.$port]))              return $this->memcacheList[$host.$port];          $memcache = new Memcache();         // 向连接池中添加一个memcache服务器         $memcache->addServer($host,$port,$flag);         //开启大值自动压缩,第一个参数表示处理数据大小的临界点,第二个参数表示压缩的比例,默认为0.2         $memcache->setCompressThreshold(2000,0.2);         $this->memcacheList[$host.$port] = $memcache;         return $memcache;      }  }

接着实现一个包含memcache常用方法如add,set,get,flush,delete等的方法类,这里命名为dlufmemcache

class dlufMemcache{      private $memcache = null;      function __construct($host,$port){         $this->memcache = memcachepool::getInstance()->getMemcache($host,$port,true);      }     /**      * memcache set value      * @param [type]  $key 键      * @param [type]  $value 值      * @param integer $expire  到期的时间,如果此值设置为0表明此数据永不过期      * @param integer $flag 标志位 使用MEMCACHE_COMPRESSED指定对值进行压缩(使用zlib)      * @param [type]  $serializetype      */      public function set($key,$value,$expire=0,$flag=0,$serializetype=null){         if($serializetype == 'json' && is_array($value)){             $value = json_encode($value);         }          $this->memcache->set($key,$value,$flag,$expire);      }     /**      * 从服务端查找元素      * @param  [type] $key      * @return [type]      */      public function get($key){          return $this->memcache->get($key);      }     /**      * 增加一个条目到缓存服务器      * @param [type]  $key      * @param [type]  $value      * @param integer $expire      * @param integer $flag      * @param [type]  $serializetype      */     public function add($key,$value,$expire=0,$flag=0,$serializetype=null){         if($serializetype == 'json' && is_array($value)){             $value = json_encode($value);         }         $ret = $this->memcache->add($key,$value,$flag,$expire);         return $ret;     }     /**      * 清洗(删除)已经存储的所有的元素      * @return [type]      */     public function flush(){         return $this->memcache->flush();     }     /**      *  从服务端删除一个元素      * @param  [type] delete 参数:key要删除的元素的key 删除该元素的执行时间 timeout如果值为0,则该元素立即删除。      * @return [type]      */     public function delete($key){         $ret = $this->memcache->delete($key,0);         return $ret;     }  }

然后调用dlufmemcache:

1 $memcache = new dlufMemcache('127.0.0.1',11211); 2  $memcache->set('memcache','come on dluf&baidu !!!!!!'); 3  $ret = $memcache->get('memcache'); 4  echo print_r($ret,true);

运行输出可见:

想了解更多关于PHP的知识不?那就赶紧去关注教程集的PHP视频教程吧!

以上就是PHP调用MEMCACHE高速缓存技术实例的详细内容,更多请关注教程集其它相关文章!

  • 本文转载于:博客园,如有侵犯,请联系jquerycn@qq.com删除
  • 您可能感兴趣的文章:
    PHP调用MEMCACHE高速缓存技术实例
    PHP如何操作Memcache缓存?
    emlog中使用memcache缓存配置修改方法
    Drupal的缓存技术应用-让你的网站飞起来
    PHP连接Memcache程序代码
    php和java有什么区别
    Memcache与MySQL同是使用的配置详解
    细说PHP下的缓存技术
    php后端开发主要会哪些技术
    php后端开发要学什么

    [关闭]
    ~ ~