• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 3年前 (2022-01-21) 18次浏览 已收录 0个评论

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

本文来源gaodai$ma#com搞$$代**码)网8搞代gaodaima码 首先,我们建立一个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高速缓存技术实例的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP调用MEMCACHE高速缓存技术实例
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址