首页 > 编程 > PHP > 正文

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

2020-03-22 19:54:38
字体:
来源:转载
供稿:网友
在项目中,涉及大访问量时,合理的使用缓存能减轻数据库的压力,同时提升用户体验。即在非实时性的需求的前提下,一小段时间内(若干秒),用于显示的数据从缓存中获取的,而不用直接读取数据库,能有效的减少数据库的读取压力。这里记录一下php语言使用memcache的情形:

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

html' target='_blank'>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视频教程吧!

以上就是PHP调用MEMCACHE高速缓存技术实例的详细内容,PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表