memcached学习笔记
2016-07-23 16:20
531 查看
<?php //===========================================================================================================// 一、安装 .编译安装:需要先下载安装包,然后安装,需要工具Libevent .依赖安装:使用系统自带的安装工具——yum(centos) | apt-get(ubuntu),安装的时候选择安装依赖包Libevent .安装可以选择Memcached,而不是Memcache,因为它是Memcache的升级版本,运行速度更快 1.客户端安装: 1.1 服务端安装目录默认是:/usr/bin/memecached 1.2 # ps -ef | grep memcached :查看所有进程中进程名包含memcach的进程,ps命令用于监控进程,参数e表示监控全部等同于参数“A”,参数f是以ASCII字符显示树状结构以表明进程之间的关系,符号“|”是管道的意思,grep命令是一个强大的文本搜索命令,即全局正则表达式版本,使用权限是所有用户。 1.3 启动命令:# /usr/bin/memcached -d -l 127.0.0.1 -p 11211 -m 150 -u cpt 参数-d表示以守护进程的模式启动,即terminal退出以后程序依然运行;-l表示ip;-p表示端口;-m是要分配给该进程的内存大小,以M为单位;-u表示用户身份 2.客户端安装:先安装Libmemcached,然后为PHP安装memcached扩展 2.1 安装Libmemcached:https://launchpad.net/libmemcached .下载安装包libmemcached-1.0.18.tar.gz .解压:# tar zxvf libmemcached-1.0.18.tar.gz .配置路径:# ./configure --prefix=/usr/lib/libmemcached .安装:# make && make install 2.2 PHP安装memcached扩展:http://pecl.php.net/package/memcached .下载扩展安装包:memcached-2.2.0.tgz .解压:# tar zxvf memcached-2.2.0.tgz .进入该目录: # cd memcached-2.2.0 .运行phpize会多出一个配置文件:phpize .配置:# ./configure 如果找不到php-config,请使用./configure --with-php-config=PATH,其中PATH是PHP的安装路径; 如果找不到安装的扩展的目录(因为我们的Libmemcached安装在别的地方了),请加上参数指明扩展安装的地方 --with-libmemcached-dir=/usr/lib/libmemcached; 如果不支持sasl.h,请加上参数说明 --disable-memecached-sasl .安装:# make && make install .安装成功后提示:Installing shared extensions: /usr/lib/php/modules/ .在php.ini配置文件最后追加扩展:# vim etc/php.ini,在文件底部G加入:extension=/usr/lib/php/modules/memcached.so .重启服务器即可 2.3 查看是否安装扩展完成: .# php -m | grep memcached //============================================================================================================// 二、memcache类的操作和封装 1.系统类: addServer/addServers/getStats/getVersion 2.数据类: add/set/delete/flush/replace/increment/get 3.进阶类: setMulti/deleteMulti/getMulti/getResultCode/getResultMessage 4.操作: $memcache = new Memcached(); $memcache->addServer('127.0.0.1', 11211); /*多台服务器*/ $ipArr = array( array('127.0.0.1', 11211), array('102.2.10.22', 11211), //... ); $memcache->addServers($ipArr); print_r($memcache->getStats()); print_r($memcache->getVersion()); /** * $memcache->add(key,val,timeout) * add方法第一个参数为key值,第二个参数为value值,第三个参数为失效时间,如果为0表示永久生效 * add方法重复调用不会覆盖掉原来的值,要覆盖请使用replace() * 第一次调用脚本可以成功覆盖掉mkey,第二次就不能了 */ $memcache->add('mkey','mvalue', 600); echo $memcache->get('mkey')."\n"; $memcache->replace('mkey', 'mvalue2', 600); echo $memcache->get('mkey')."\n"; /** * $memcache->set(key,val,timeout)方法当不存在的时候新建,存在的话进行覆盖 */ $memcache->set('mkey', 'mvalue3', 600); echo $memcache->get('mkey'); /** * $memcache->delete(key)方法删除某个key的value值 */ $memcache->delete('mkey'); echo $memcache->get('mkey'); /** * $memcache->flush()清空掉memcached中的所有缓存 */ $memcache->flush(); echo $memcache->get('mkey'); /** * $memcache->increment(key,offset,timeout)方法对整数按某个偏移量进行递增操作 */ $memcache->set('num', 5, 0); $memcache->increment('num', 5); echo $memcache->get('num'); /** * $memcache->decrement(key,offset,timeout)方法对整数按某个偏移量进行递减操作 */ //============================================================================================================// 三、利用memcached进行批量操作 $memcache = new Memcached(); $memcache->addServer('127.0.0.1', 11211); /*memcached实现批量操作*/ $dataAry = array( 'key' => 'val', 'key1' => 'val1', 'key2' => 'val2', 'key3' => 'val3', 'key4' => 'val4', 'key5' => 'val5', 'key6' => 'val6', 'key7' => 'val7', 'key8' => 'val8', 'key9' => 'val9', 'key10' => 'val10' ); /** * $memcache->setMulti(array,timeout)批量处理数据 */ $memcache->setMulti($dataAry,0); /** * $memcache->getMulti(array())批量获取数据 */ $result = $memcache->getMulti(array('key','key1','key2')); print_r($result); //输出 // Array // ( // [key] => val // [key1] => val1 // [key2] => val2 // ) /** * $memcache->deleteMulti(array('key','key2'))删除多条数据 */ $memcache->deleteMulti(array('key')); echo $memcache->get('key')."\n"; echo $memcache->get('key1')."\n"; /** * $memcache->getResultCode()获取执行的结果代码:0为成功,非0失败,具体参考手册 */ echo $memcache->getResultCode()."\n"; /** * $memcache->getResultMessage()获取操作结果的信息 */ echo $memcache->getResultMessage()."\n"; //===========================================================================================================================// 四、封装自己的memcache类 //应具有如下特点: //扩展性:既支持memcache又支持memcached //可调试: //尽量简便的操作,一个方法多种功能 //详见:http://benbird.cc/post/29
相关文章推荐
- memcached 常用命令及使用说明
- 谈谈Memcached与Redis
- python_Memcached
- python对缓存(memcached,redis)的操作
- memcached命令行参数说明
- Python3之Memcache使用
- Redis与Memcache性能对比
- tomcat篇之结合apache+tomcat+memcached做session共享
- memcached的下载和安装
- Python菜鸟之路:Python基础-操作缓存memcache、redis
- PHP结合Memcached
- memcached介绍以及安装
- Redis和Memcached的区别---查询资料整理;
- ubuntu memcached启动脚本
- memcache搜索分页
- php操作memcache的步骤
- Memcache
- 缓存技术PK:选择Memcached还是Redis?
- Redis 和 Memcached 的区别
- linux上安装memcached步骤