PHP调用MEMCACHE高速缓存技术实例
发布:smiling 来源: PHP粉丝网 添加日期:2020-03-05 15:44:06 浏览: 评论:0
在项目中,涉及大访问量时,合理的使用缓存能减轻数据库的压力,同时提升用户体验。即在非实时性的需求的前提下,一小段时间内(若干秒),用于显示的数据从缓存中获取的,而不用直接读取数据库,能有效的减少数据库的读取压力。这里记录一下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:
- $memcache = new dlufMemcache('127.0.0.1',11211);
- $memcache->set('memcache','come on dluf&baidu !!!!!!');
- $ret = $memcache->get('memcache');
- echo print_r($ret,true);
Tags: MEMCACHE PHP高速缓存
- 上一篇:php 查看使用了多少内存
- 下一篇:【PHP开发】搭建购物网站之定义核心控制器
相关文章
- ·php memcached 扩展 timeout 问题(2013-12-06)
- ·php中Memcached连接超时问题解决办法(2013-12-07)
- ·memcached启动和关闭的方法(2014-02-10)
- ·php memcache和memcached的区别(2014-02-21)
- ·PHP连接Memcache程序代码(2014-06-10)
- ·emlog中使用memcache缓存配置修改方法(2014-06-17)
- ·php memcached安装与使用(2014-08-05)
- ·Memcache php提高mysql负载有效方法(2014-08-18)
- ·php实现memcache缓存实例详解(2014-08-27)
- ·php MemCache内存缓存学习笔记(2014-08-27)
- ·memcache构建简单的内存消息队列(2014-08-27)
- ·解决memcache中使用session_start启动慢(2014-08-27)
- ·清除memcache中的缓存一些方法总结(2014-08-27)
- ·PHP memcache实现消息队列实例(2014-08-27)
- ·PHP利用memcache缓存技术简单介绍(2014-08-28)
- ·php内存缓存实现程序代码(2014-08-28)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)