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);
相关推荐
最近一直在做一个项目的前期设计工作,考虑到... 以上是我在windows下对memcached的一点小学习和实践,在以后的项目开发过程中将会更深入的学习和应用这一缓存工具,也希望和有兴趣的同行一起讨论学习该工具的使用~~
redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,...
目录 ... 小知识点 1 表格 3 Frameset 5 Form/input 8 ...一....二....三....四....六....七....一....二....四....六....类 41 ...memcached 76 telnet操作 76 php中使用memcached 78 把session数据放入memcache中 79 小知识点 80
简单的 Sprint Memcached 学习测试项目测试 memcached 服务器: localhost:11211重现@ReadThroughMultiCache 错误 此错误已在 Simple spring memcached 3.6.0 中修复。 ./gradlew runMainSSM 配置在...
内存数据库memcached源代码,对学习C语言和分布式开发的人,会有莫大的帮助。
1、win下安装,memcached -d installwin下启动,memcached -d start关闭,memcached -d stop 1_1、三种方式访问memcachememcachememcachedphp (不依赖于扩展socket操作) 2、memcache扩展(函数)===访问缓存系统。...
11:学习制作PHP+MYSQL留言板(上) 12:学习制作PHP+MYSQL留言板(下) 13:PHP+MYSQL分页原理 14:PHP上传原理及应用 15:PHP生成HTML文件原理 16:PHP小偷程序原理和实例 17:PHP面向对象开发的学习(一) 18:...
主要功能: 1、设置:站点设置、账号同步、上传设置、SEO设置、邮箱短信、支付...7、支持Redis/Memcached 8、支持Linux/Unix/Windows服务器,支持Apache/IIS/Nginx等 9、支持电脑PC端、手机端(微信端)、小程序、APP
Java虚拟机:内存模型、垃圾收集器、类加载机制等 Java企业级开发:Spring、Hibernate、MyBatis等框架原理 数据库和缓存:SQL优化、索引、Redis、Memcached等 分布式系统:负载均衡、集群、分布式事务、分布式锁等 使用...
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视频教程11:学习制作PHP+MYSQL留言板(上) PHP100视频教程12:学习制作PHP+MYSQL留言板(下) PHP100视频教程13:PHP+MYSQL分页原理 PHP100视频教程14:PHP上传原理及应用 PHP100视频教程15:PHP生成...
个人写的北大青鸟S2易买网项目EasyBuy,本项目实现类所有要有的功能,并且附加使用了登陆的验证码验证(验证码为纯代码生成,没有借助于工具类),同时还实现了修改密码,以及收藏栏的功能,收藏栏使用Memcached ...
这里给大家介绍 Django 框架的主要特点,其他一些小优点,读者在学习过程中会慢慢体会: 基于 Python 语言及 MVC 模式,具有开发快捷、低耦合、部署方便、可重用性高和维护成本低等显著特点。 通过一个 URL 分发器...
ios系类教程之用instruments来检验你的app Android 学习笔记之 SQLite基础用法 如何充分利用 Windows Phone 高清屏幕 【cocos2d-x 手游研发----博彩大转盘】 后端架构 回顾2013:HBase的提升与挑战 memcached(十七...
AI-微结构如果apt-get install memcached wordnet cpanm 然后概念是一个词或任何形式的输入的心理表征! 概念使我们能够对日常生活中遇到的实体类型进行适当的推论! 概念的使用对于分类、记忆、决策、学习和推理等...
第十三阶段学习指南 |-0.设计模式|-1.并发编程|-2.spring源码解读|-3.Mybatis专题|-4.JVM性能调优|-5.Tomcat |-6.MySQL |-7.Nginx |- 8.高性能Netty框架|-9.分布式思维|-10.Zookeeper |-11架构核心服务层技术基础篇...
构造一个缓存处理程序类。 实例化高速缓存适配器,将其与高速缓存处理程序实例一起注入。 设置缓存。 获取缓存。 删除缓存。 清除缓存。 // 1. Instantiate a Cache Handler. $ options = array (); $ options [ '...
学习后可以掌握: 1.掌握redis/Memcached底层实现与高级特性 2.剖析缓存在秒杀、计数器、Feed流中的应用 3.掌握大规模穿透、雪崩等经典问题的解决方案 4.揭秘新浪微博的百万级QPS技术核心
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...
曾在新浪网、赶集网等公司任系统工程师、系统架构师,工作内容主要涉及:服务器系统架构设计与部署、系统运维与调优、网络故障解决、网站后端以及接口类PHP程序开发、Unix开源软件二次开发、服务器监控系统开发、...