`

memcached类学习

 
阅读更多

class BiMemcached{

        private $id;

        private $obj;

        private $expiration = 0;

 

    //new中带上唯一标示,能够创建memcached的持久化对象,所有通过相同的唯一标识值创建的实例共享同一个连接

        public function __construct( $id ){

                $this->obj = new Memcached( $id );

        }

 

        public function connect( $host, $port ){

 

                $servers = $this->obj->getServerList();

                if( !empty($servers) ){

                        foreach( $servers as $row ){

                                if( $row['host'] == $host && $row['port'] == $port ){

                                        return true;

                                }

                        }

                }

 

                return $this->obj->addServer( $host, $port );

        }

 

        public function set( $key, $value, $expiration = 0 ){

 

                if( !empty($key) ){

                        $this->setExpiration( $expiration );

                        return $this->obj->set( $key, $value, $this->expiration );

                }

 

                return false;

 

        }

 

        public function get( $key ){

 

                return $this->obj->get($key);

 

        }

 

        //设置多个值,可以通过getMulti或get来获取值

        public function setMulti( array $arr, $expiration = 0 ){

 

                $this->setExpiration( $expiration );

                if( !empty($arr) ){

                        return $this->obj->setMulti( $arr, $this->expiration );

                }

 

                return true;

 

        }

 

        public function getMulti( array $arr ){

 

                return $this->obj->getMulti( $arr );

 

        }

 

    //向服务端发出一个检索keys指定的多个 key对应元素的请求。这个方法不会等待响应而是立即返回。当你需要收集元素值时, 调用Memcached::fetch()或 Memcached::fetchAll()

        public function getDelayed( array $arr, $cas = false, $callBack = null ){

                return $this->obj->getDelayed( $arr, $cas, $callBack );

        }

 

        public function fetch(){

                return $this->obj->fetch();

        }

 

        public function fetchAll(){

                return $this->obj->fetchAll();

        }

 

    //如果Memcached::OPT_COMPRESSION常量开启,这个操作会失败,并引发一个警告,因为向压缩数据 后追加数据可能会导致解压不了

    public function append( $key, $value ){

        $this->obj->append( $key, $value );

    }

 

    public function getOption( $option ){

        return $this->obj->getOption( $option );

    }

 

    public function setOption( $option, $value ){

        return $this->obj->setOption( $option, $value );

    }

 

        public function getServerList(){

                return $this->obj->getServerList();

        }

 

    public function quit(){

        $this->obj->quit();

    }

 

    public function setExpiration( $expiration ){

 

        $this->expiration = !empty($expiration) && is_numeric($expiration) ? time()+ $expiration : 0;

 

    }

 

    public function getOption( $option ){

        return $this->obj->getOption( $option );

    }

 

    public function setOption( $option, $value ){

        return $this->obj->setOption( $option, $value );

    }

 

        public function getServerList(){

                return $this->obj->getServerList();

        }

 

    public function quit(){

        $this->obj->quit();

    }

 

    public function setExpiration( $expiration ){

 

        $this->expiration = !empty($expiration) && is_numeric($expiration) ? time()+ $expiration : 0;

 

    }

}

 

//结果回调:通过Memcached::getDelayed()或 Memcached::getDelayedBykey()方法获取元素后,为结果集中每个元素调用一次

function callBackFun( $memc, $item ){

    foreach( $item as $key =>$row ){

        echo "the key is".$key.", the value is ".$row."<br>";

    }

}

 

$m = new BiMemcached('');

$m->connect('localhost', 11211);

分享到:
评论

相关推荐

    memcached1

    最近一直在做一个项目的前期设计工作,考虑到... 以上是我在windows下对memcached的一点小学习和实践,在以后的项目开发过程中将会更深入的学习和应用这一缓存工具,也希望和有兴趣的同行一起讨论学习该工具的使用~~

    Redis全套学习笔记 (带章节目录) 完整版pdf

    redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,...

    php学习笔记

    目录 ... 小知识点 1 表格 3 Frameset 5 Form/input 8 ...一....二....三....四....六....七....一....二....四....六....类 41 ...memcached 76 telnet操作 76 php中使用memcached 78 把session数据放入memcache中 79 小知识点 80

    simple-spring-memcached-test-project:SimpleSpringMemcached 测试项目

    简单的 Sprint Memcached 学习测试项目测试 memcached 服务器: localhost:11211重现@ReadThroughMultiCache 错误 此错误已在 Simple spring memcached 3.6.0 中修复。 ./gradlew runMainSSM 配置在...

    经典的内存数据库源代码

    内存数据库memcached源代码,对学习C语言和分布式开发的人,会有莫大的帮助。

    php之Memcache学习笔记

    1、win下安装,memcached -d installwin下启动,memcached -d start关闭,memcached -d stop 1_1、三种方式访问memcachememcachememcachedphp (不依赖于扩展socket操作) 2、memcache扩展(函数)===访问缓存系统。...

    php课程(共100多节)

    11:学习制作PHP+MYSQL留言板(上) 12:学习制作PHP+MYSQL留言板(下) 13:PHP+MYSQL分页原理 14:PHP上传原理及应用 15:PHP生成HTML文件原理 16:PHP小偷程序原理和实例 17:PHP面向对象开发的学习(一) 18:...

    社区团购开源商城源码 v3.0.0,高性价比产品及服务的邻里社交电商平台,是“社区+社群+社交”的新型模式,供大家学习研究参考!

    主要功能: 1、设置:站点设置、账号同步、上传设置、SEO设置、邮箱短信、支付...7、支持Redis/Memcached 8、支持Linux/Unix/Windows服务器,支持Apache/IIS/Nginx等 9、支持电脑PC端、手机端(微信端)、小程序、APP

    涵盖了 Java 基础、集合、源码、并发、虚拟机、框架、数据库、网络编程、设计模式、新特性和数据结构等多个知识领域的面试突击

    Java虚拟机:内存模型、垃圾收集器、类加载机制等 Java企业级开发:Spring、Hibernate、MyBatis等框架原理 数据库和缓存:SQL优化、索引、Redis、Memcached等 分布式系统:负载均衡、集群、分布式事务、分布式锁等 使用...

    大数据云计算技术系列 NoSQL数据库学习教程(共71页).pdf

    4 Memcached 和 dbcached 在功能上一样吗? 4 列存系列 4 Hadoop之Hbase 4 耶鲁大学之HadoopDB 4 GreenPlum 4 FaceBook之Cassandra 4 Cassandra特点 4 Keyspace 4 Column family(CF) 4 Key 4 Column 4 Super column...

    PHP100视频教程全集112集BT种子【PHP经典】

    PHP100视频教程11:学习制作PHP+MYSQL留言板(上) PHP100视频教程12:学习制作PHP+MYSQL留言板(下) PHP100视频教程13:PHP+MYSQL分页原理 PHP100视频教程14:PHP上传原理及应用 PHP100视频教程15:PHP生成...

    易买网项目EasyBuy(内有数据库)

    个人写的北大青鸟S2易买网项目EasyBuy,本项目实现类所有要有的功能,并且附加使用了登陆的验证码验证(验证码为纯代码生成,没有借助于工具类),同时还实现了修改密码,以及收藏栏的功能,收藏栏使用Memcached ...

    Django+Vue:Python Web全栈开发

    这里给大家介绍 Django 框架的主要特点,其他一些小优点,读者在学习过程中会慢慢体会: 基于 Python 语言及 MVC 模式,具有开发快捷、低耦合、部署方便、可重用性高和维护成本低等显著特点。 通过一个 URL 分发器...

    编程狂人第九期(2014-1-20)

    ios系类教程之用instruments来检验你的app Android 学习笔记之 SQLite基础用法 如何充分利用 Windows Phone 高清屏幕 【cocos2d-x 手游研发----博彩大转盘】 后端架构 回顾2013:HBase的提升与挑战 memcached(十七...

    active-memory:概念有组织的数据看看http

    AI-微结构如果apt-get install memcached wordnet cpanm 然后概念是一个词或任何形式的输入的心理表征! 概念使我们能够对日常生活中遇到的实体类型进行适当的推论! 概念的使用对于分类、记忆、决策、学习和推理等...

    JAVA体系结构:Java培训项目,包括Java的各种核心知识

    第十三阶段学习指南 |-0.设计模式|-1.并发编程|-2.spring源码解读|-3.Mybatis专题|-4.JVM性能调优|-5.Tomcat |-6.MySQL |-7.Nginx |- 8.高性能Netty框架|-9.分布式思维|-10.Zookeeper |-11架构核心服务层技术基础篇...

    Cache:[Alpha]具有适用于APC,数据库,虚拟,文件,Memcached,内存,Redis,Wincache和xCache处理程序的驱动程序PHP应用程序缓存

    构造一个缓存处理程序类。 实例化高速缓存适配器,将其与高速缓存处理程序实例一起注入。 设置缓存。 获取缓存。 删除缓存。 清除缓存。 // 1. Instantiate a Cache Handler. $ options = array (); $ options [ '...

    300分钟吃透分布式缓存.txt

    学习后可以掌握: 1.掌握redis/Memcached底层实现与高级特性 2.剖析缓存在秒杀、计数器、Feed流中的应用 3.掌握大规模穿透、雪崩等经典问题的解决方案 4.揭秘新浪微博的百万级QPS技术核心

    JAVA上百实例源码以及开源项目源代码

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    实战Nginx.取代Apache的高性能Web服务器.2010 pdf

    曾在新浪网、赶集网等公司任系统工程师、系统架构师,工作内容主要涉及:服务器系统架构设计与部署、系统运维与调优、网络故障解决、网站后端以及接口类PHP程序开发、Unix开源软件二次开发、服务器监控系统开发、...

Global site tag (gtag.js) - Google Analytics