




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、为大型网站提速为大型网站提速 -memcached-memcached缓存技术缓存技术什么是什么是memcachememcached是一个高性能的分布式内存存储系统。你可以把memcached看做是一个具体的hash表, 形式是两列键(key) 值(value)字符串(唯一) 布尔,整数,浮点数,字符串,对象,数组,NULL,二进制数据(视频,音频,文件)1、memcached是什么是什么是为了解决大型网站的提速而设计,目前很多网站都在使用., 非PHP网站也在使用memcached。Memcached是一个高性能的分布式的内存对象缓存系统,目前全世界不少人使用这个缓存项目来构建自己大负载的网
2、站,来分担数据库的压力,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。(注: 摘自百度全科)2、memcached的来历3、使用memcached的原理4、memcached的安装(1)下载安装软件memcached-1.2.6-win32-bin.zip(2)解压该文件把memcached.exe 拷贝到你的 apache同一目录(3)安装该memcached cmd%mem%memcached.exe d install 安装(4)启动memcac
3、hedcmd%mem%memcached.exe -d start 【启动】cmdnetstat an 【查看当前网络服务,如果看到11211端口在监听,说明ok】 4、memcached的安装安装可能失败的原因:(1) 如果你是用win7,win8系统,他对安全性要求高,因此,需要大家使用管理员的身份来安装和启动. 具体是 程序开始=所有程序=附件=cmd(单击右键,选择以管理员的身份来执行)(2)存放memcache.exe 目录不要有中文或者特殊字符(3) 安装成功,但是启动会报告一个错误信息,提示缺少xx.dll ,你可以从别的机器拷贝该dll文件,然后放入到system32下即可.(
4、4)如果上面三个方法都不可以,你可以直接这样启动memcmdmemcached.exe -p 端口 【这种方式不能关闭窗口】对对memcached进行操作进行操作对memcached进行操作有三种方式,通过telnet来操作 通过PHP的扩展库dll 1. 通过源码文件对mem进行操作对对memcache操作方式:操作方式:通过通过telnet操作操作 memcached服务服务1、连接到mem服务cmdtelnet 127.0.0.1 112112、添加数据基本语法:add 键 0 有效时间 数据大小cmdadd name 0 60 5说明:name是键,0表示数据不要压缩 60:存放时间为
5、60秒,5:表示数据大小5个字节。通过通过telnet操作操作 memcached服务服务3、查询数据、查询数据基本语法是:get 键名称4、修改数据、修改数据基本语法:replace 键 0 有效时间 数据大小cmdreplace name 0 30 3说明:更新一个键为name的数据,前提是该键存在,如果不存在则提示not_stored还有一种替换:cmdset name 0 30 3说明:set 指令也可以替换数据,如果键存在则替换,如果不存在,则等于添加。5、删除数据、删除数据基本语法:delete 键名称flush_all 清空所有的数据memcached的基本命令的基本命令-p 监
6、听的端口监听的端口 -l 连接的连接的IP地址地址, 默认是本机默认是本机 -d start 启动启动memcached服务服务 -d restart 重起重起memcached服务服务 -d stop|shutdown 关闭正在运行的关闭正在运行的memcached服务服务 -d install 安装安装memcached服务服务 -d uninstall 卸载卸载memcached服务服务 -u 以的身份运行以的身份运行 (仅在以仅在以root运行的时候有效运行的时候有效) -m 最大内存使用,单位最大内存使用,单位MB。默认。默认64MB -M 内存耗尽时返回错误,而不是删除项内存耗尽时
7、返回错误,而不是删除项 -c 最大同时连接数,默认是最大同时连接数,默认是1024 -f 块大小增长因子,默认是块大小增长因子,默认是1.25 -n 最小分配空间,最小分配空间,key+value+flags默认是默认是48 -h 显示帮助显示帮助memcached的其他操作命令的其他操作命令memcached的的stats指令指令stats指令,可以查询mem的运行状态.如何通过如何通过php程序对程序对memcached进行操作进行操作分为:通过dll扩展库来操作,通过源码操作使用扩展库使用扩展库dll来操作来操作memcached服务服务1.先把mem提供的扩展库,下载到本地. 我使用的
8、php5.3.5 就拷贝对应的dll到 %php%/ext目录2.修改php.ini 文件加入mem配置;配置mem扩展库extension=php_memcache.dll3.重新启动apache服务.4.你可以看看你php_memcache.dll1、可以放入字符串、可以放入字符串2、可以放入数值型、可以放入数值型3、可以放入布尔值(假位空,真为、可以放入布尔值(假位空,真为1)4、可以放入数组、可以放入数组5、可以放入对象、可以放入对象6、不能把不能把resource 类型放入到类型放入到memcache。放入取出时,变为。放入取出时,变为0 注意:在另外文件中取出对象时,对应注意:在另
9、外文件中取出对象时,对应php5.2这个版本会这个版本会提示错误。对提示错误。对php5.3这个版本会提示,这个版本会提示,incomplete信息,信息,解决方法是声明类定义。解决方法是声明类定义。使用扩展库使用扩展库dll来操作来操作memcached服务服务使用扩展库使用扩展库dll来操作来操作memcached服务服务思考:数组在mem中是以什么形式存放的,以序列化方式存放。什么是序列化:就是在保存数据时,不但保存数据本身,还保存数据类型。(1)利于在网络间进行数据传输(2)便于重新读取并回复数据使用扩展库使用扩展库dll来操作来操作memcached服务服务bool Memcache
10、:add ( string $key , mixed $var , int $flag , int $expire )细节:在添加数据的时候,(1)如果 expire设为0表示,永不过期(只要memcache不重新启动,就永远在mem中)(2)expire直接给的是秒数,则最大30*3600*24.(3)如果希望保存时间超过30天,则time()+天数*3600*24即可。stats items:查看选项内容。注意:在使用add添加时,若键名已经存在,则不会被覆盖。$mem=new Memcache();$mem-connect(localhost,11211);$sql=select * f
11、rom shops;$key=md5($sql);$data=$mem-get($key);if(!$data) $conn=mysql_connect(localhost,root,root); mysql_query(use goods); mysql_query(set names gbk); $res=mysql_query($sql); $data=array(); while($row=mysql_fetch_assoc($res) $data=$row; $mem-add($key,$data,MEMCACHE_COMPRESSED,3600);print_r($data);使用
12、扩展库使用扩展库dll来操作来操作memcached服务服务使用源码对使用源码对memcached进行操作进行操作如果我们没有权限修改php.ini,还有可能是你目前使用的php版本没有对应的dll扩展库,当上面情况发生,我们就需要使用源码操作。memcached的机制介绍Memcached机制深入了解机制深入了解基于基于c/s架构,协议简单架构,协议简单lc/s架构,此时memcached为服务器端,我们可以使用如PHP,c/c+等程序连接memcached服务器。lmemcached的服务器客户端通信并不使用XML等格式,而使用简单的基于文本行的协议。因此,通过telnet也能在memca
13、ched上保存数据、取得数据基于基于libevent的事件处理的事件处理llibevent是一套跨平台的事件处理接口的封装,能够兼容包括这些操作系统:Windows/Linux/BSD/Solaris 等操作系统的的事件处理。lMemcached 使用libevent来进行网络并发连接的处理,能够保持在很大并发情况下,仍旧能够保持快速的响应能力。Memcached机制深入了解机制深入了解内置内存存储方式l为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。由于数据仅存在于内存中,因此重启memcached、重启操作系统会导致全部数据消失。另外,内容容量达
14、到指定值之后,就基于LRU(Least Recently Used)(最近最少使用算法)算法自动删除不使用的缓存。memcached本身是为缓存而设计的服务器,因此并没有过多考虑数据的永久性问题。Memcached机制深入了解机制深入了解基于客户端的分布式lmemcached尽管是“分布式”缓存服务器,但服务器端并没有分布式功能。各个memcached不会互相通信以共享信息。那么,怎样进行分布式呢?这完全取决于客户端的实现。l如图:Memcached机制深入了解机制深入了解总结:(1)mem 服务的数据部是同步,数据是分布的。(2)把什么数据放入到哪个memcached是由客户端的memcac
15、he对象决定的。(3)当执行addServer的时候,并不是立即去链接mem服务,而是通过计算hash后才去决定链接哪个mem服务,因此当你大量加入服务器到链接池,没有多余开销。$mem=new Memcache(); /如果我们网站,需要多个memached缓存系统. $mem-addServer(192.168.1.100,11211);/256 -10m$mem-addServer(192.168.1.200,11211);$mem-addServer(192.168.1.222,11211);/创建多个memcache服务使用.$mem-add(name,zs,0,100);通过mem
16、cache.exe p 11210模拟有两个memcache服务。数据存储是分布存放。使用多个使用多个memcached 缓存服务器缓存服务器.Memcache:addServer()增加一个服务器到连接池中。通过Memcache:addServer() 打开的连接将会在脚本执行结束后自动关闭,也可以使用Memcache:close()进行手动关闭。 您也可以使用memcache_add_server()来添加服务器。 当使用这个方法的时候(与Memcache:connect()和Memcache:pconnect()相反) 网络连接并不会立刻建立,而是直到真正使用的时候才建立。 因此在加入大
17、量服务器到连接池中时也是没有开销的,因为它们可能并不会被使用。 使用多个使用多个memcached 缓存服务器缓存服务器.memcached的细节讨论(1)生命周期:)生命周期:从数据放入从数据放入mem开始计时,直到时间到了,就销毁,如开始计时,直到时间到了,就销毁,如果时间为果时间为0,则表示不过期。,则表示不过期。memcache的数据被销毁的情况如下:的数据被销毁的情况如下:时间到时间到重启重启memcached 服务服务重启重启memcached 服务所在的机器服务所在的机器memcached的细节讨论的细节讨论Memcached细节讨论细节讨论 将将Session数据放入到数据放入
18、到Memcached(举例说明)l保证memcache扩展开启,memcachd运行l设置php.ini中session.save_handler=memcachel设置php.ini中session.save_path=tcp:/localhost:11211(可以是用逗号分隔的列表)l也可以通过php函数 ini_set() 函数在页面设置l如果session数据入mem,则一定是以 session_id为key值进行添加。.当当session数据保存到数据保存到memcached中,他的生命周期还是中,他的生命周期还是以以seesion的生命周期来管理的。的生命周期来管理的。memcac
19、he安全性安全性(1)内网(两块网卡,)内网(两块网卡,memcache在启动时指定那台访问)在启动时指定那台访问)memcached d u root l 192.168.1.100 p 11211.指定只有指定只有192.168.1.100服务器才能访问。服务器才能访问。(2)防火墙在linux中,设置命令。iptables -a input -p 协议协议 -s 可以访问可以访问ip -dport 端口端口 -j ACCEPT例如:例如:iptables a input p tcp s 192.168.1.1 dport 11211 j ACCEPTiptables a input p t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新零售信息管理办法
- 机动车污染管理办法
- 新《处方管理办法》
- 气象应急车管理办法
- 村里防疫员管理办法
- 医院内票据管理办法
- 散包装食品管理办法
- 小型提灌站管理办法
- 新材料使用管理办法
- 技术标造价管理办法
- 危化品经营安全生产规章制度
- 2025至2030再加工一次性设备行业产业运行态势及投资规划深度研究报告
- 护理专业组长竞聘
- 学堂在线 管理沟通的艺术 期末考试答案
- 2025红色中国风《长安的荔枝》读书分享模板
- 颅脑损伤病人的护理常规
- 2025年江苏高考真题化学试题+解析(参考版)
- 血管内导管相关性血流感染预防与诊治2025
- 环保企业五年发展计划
- 2025榆林能源集团有限公司招聘工作人员(473人)笔试参考题库附带答案详解
- ktv合作股权协议书
评论
0/150
提交评论