ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:61.05KB ,
资源ID:4085185      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4085185.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Memcache文档.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Memcache文档.docx

1、Memcache文档Memcache 使用说明文档修订记录:版本号修订人修订日期修订描述V1.0庄欠林2012-03-07第一版目录目录 2一.简介 3二.工作原理 4三.安装 51.windows下安装memcache 52.linux下安装memcache 6四.Memcache所有方法及参数详解 91.Memcache:add用法 102.Memcache:addServer用法 103.Memcache:close用法 114.Memcache:connect用法 125.memcache:debug 126.Memcache:decrement用法 137.Memcache:dele

2、te用法 138.Memcache:flush 149.Memcache:get 1510.Memcache:getExtendedStats 1511.Memcache:getServerStatus 1612.Memcache:getStats 1713.Memcache:set 1714.Memcache:getVersion 1815.Memcache:increment 1816. Memcache:pconnect 19五.其他 20一.简介memcached是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表(如下图),它能够用来存储各种格式的数据,

3、包括图像、视频、文件以及数据库检索的结果等。Memcache是的一个项目,最早是为 LiveJournal 服务的,最初为了加速 LiveJournal 访问速度而开发的,后来被很多大型的网站采用。目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。起初作者编写它可能是为了提高动态网页应用,为了减轻数据库检索的压力,来做的这个缓存系统。它的缓存是一种分布式的,也就是可以允许不同主机上的多个用户同时访问这个缓存系统, 这种方法不仅解决了共享内存只能是单机的弊端,同时也解决了数据库检索的压力,最大的优点是提高了访问获取数据的速度!基于memcache作者对分布式cache的

4、理解和解决方案。 memcache完全可以用到其他地方 比如分布式数据库, 分布式计算等领域。 Memcached hash表形式(key=value对)KEYVALUE变量1可以标量变量2可以是数组变量3可以是对象变量n可以是任意类型nameZhangan age10emailAaaccceee二.工作原理首先 memcached 是以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作,客户端可以由各种语言编写,目前已知的客户端 API 包括 Perl/PHP/Python/Ruby/Java/C#/C 等等。客户端在与 memcached 服务建立连接之后,接下来的事情就是存取

5、对象了,每个被存取的对象都有一个唯一的标识符 key,存取操作均通过这个 key 进行,保存到 memcached 中的对象实际上是放置内存中的,并不是保存在 cache 文件中的,这也是为什么 memcached 能够如此高效快速的原因。注意,这些对象并不是持久的,服务停止之后,里边的数据就会丢失。 与许多 cache 工具类似,Memcached 的原理并不复杂。它采用了C/S的模式,在 server 端启动服务进程,在启动时可以指定监听的 ip,自己的端口号,所使用的内存大小等几个关键参数。一旦启动,服务就一直处于可用状态。Memcached 的目前版本是通过C实现,采用了单进程,单线程

6、,异步I/O,基于事件 (event_based) 的服务方式.使用 libevent 作为事件通知实现。多个 Server 可以协同工作,但这些 Server 之间是没有任何通讯联系的,每个 Server 只是对自己的数据进行管理。Client 端通过指定 Server 端的 ip 地址(通过域名应该也可以)。需要缓存的对象或数据是以 key-value 对的形式保存在Server端。key 的值通过 hash 进行转换,根据 hash 值把 value传递到对应的具体的某个 Server 上。当需要获取对象数据时,也根据 key 进行。首先对 key 进行 hash,通过获得的值可以确定它

7、被保存在了哪台 Server 上,然后再向该 Server 发出请求。Client 端只需要知道保存 hash(key) 的值在哪台服务器上就可以了。其实说到底,memcache 的工作就是在专门的机器的内存里维护一张巨大的 hash 表(键值对方式),来存储经常被读写的一些数组与文件,从而极大的提高网站的运行效率。三.安装1.windows下安装memcache下载Memcache地址:(1).将下载的压缩包解压放某个盘下面,比如在c:memcached (2). 在终端(也即cmd命令界面)下输入 c:memcachedmemcached.exe -d install 安装 (3). 再输

8、入: c:memcachedmemcached.exe -d start 启动。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。(4). 启动memcached服务器:在cmd命令界面中输入: c:memcachedmemcached.exe -l 127.0.0.1 -m 32 -d start-l:是指定ip地址,不写的话默认为本机-m: 最大内存使用,单位MB。默认64MB ,最大好像2G(5).下载php_memcache.dll,请自己查找对应的php版本的文件 (6). 在C:winntphp.ini 加入一行 ext

9、ension=php_memcache.dll (7).重新启动Apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!(8).如果安装完,看一下任务管理器,出现一下情况,则说明memcache真正安装成功. (9)memcached的基本设置: -p 监听的端口 -l 连接的IP地址, 默认是本机 -d start 启动memcached服务 -d restart 重起memcached服务 -d stop|shutdown 关闭正在运行的memcached服务 -d install 安装memcached服务 -d uninstall 卸载memcached服

10、务 -u 以的身份运行 (仅在以root运行的时候有效) -m 最大内存使用,单位MB。默认64MB -M 内存耗尽时返回错误,而不是删除项 -c 最大同时连接数,默认是1024 -f 块大小增长因子,默认是1.25 -n 最小分配空间,key+value+flags默认是48 -h 显示帮助2.linux下安装memcache需要安装的就是服务器的Memcached的守护进程和客户端的PHP扩展php_memcache两个东西。现在我分别来讲。服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.4.0 。下载:另外,Memcache用到了libevent这个

11、库用于Socket的处理,所以还需要安装libevent,libevent的最新版本是libevent-1.2。(如果你的系统已经安装了libevent,可以不用安装)官网:http:/www.monkey.org/provos/libevent/下载:http:/www.monkey.org/provos/libevent-1.2.tar.gz我分别把两个东东下载回来,放到 /tmp 目录下:# cd /tmp# wget# wgethttp:/www.monkey.org/provos/libevent-1.2.tar.gz先安装libevent:# tar zxvf libevent-1

12、.2.tar.gz# cd libevent-1.2# ./configure -prefix=/usr# make# make install然后看看我们的libevent是否安装成功:# ls -al /usr/lib | grep libeventlrwxrwxrwx 1 root root 21 11? 12 17:38 libevent-1.2.so.1 - libevent-1.2.so.1.0.3-rwxr-xr-x 1 root root 263546 11? 12 17:38 libevent-1.2.so.1.0.3-rw-r-r- 1 root root 454156 1

13、1? 12 17:38 libevent.a-rwxr-xr-x 1 root root 811 11? 12 17:38 libevent.lalrwxrwxrwx 1 root root 21 11? 12 17:38 libevent.so - libevent-1.2.so.1.0.3还不错,都安装上了,再来安装memcache,同时需要安装中指定libevent的安装位置:# cd /tmp# tar zxvf memcached-1.2.0.tar.gz# cd memcached-1.2.0# ./configure -with-libevent=/usr# make# make

14、 install如果中间出现报错,请仔细检查错误信息,按照错误信息来配置或者增加相应的库或者路径。安装完成后会把memcached放到 /usr/local/bin/memcached ,我们看以下是否安装了:# ls -al /usr/local/bin/mem*-rwxr-xr-x 1 root root 137986 11? 12 17:39 /usr/local/bin/memcached-rwxr-xr-x 1 root root 140179 11? 12 17:39 /usr/local/bin/memcached-debug恩,安装完成了,我们来启动一个Memcache的服务器

15、端:# /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid-d选项是启动一个守护进程,-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,-u是运行Memcache的用户,我这里是 root,-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,-p是设置Memcache监听 的端口,我这里设置了12000,最好是1024以上的端口,-c选项是最大运行的并发连接数,默认是1024,我

16、这里设置了256,按照你服务器的负载 量来设定,-P是设置保存Memcache的pid文件,我这里是保存在/tmp/memcached.pid,如果要结束Memcache进程,执行:# kill cat /tmp/memcached.pid四.Memcache所有方法及参数详解Memcache:add - 添加一个值,如果已经存在,则返回falseMemcache:addServer - 添加一个可供使用的服务器地址Memcache:close - 关闭一个Memcache对象Memcache:connect - 创建一个Memcache对象memcache_debug - 控制调试功能Mem

17、cache:decrement - 对保存的某个key中的值进行减法操作Memcache:delete - 删除一个key值Memcache:flush - 清除所有缓存的数据Memcache:get - 获取一个key值Memcache:getExtendedStats - 获取进程池中所有进程的运行系统统计Memcache:getServerStatus - 获取运行服务器的参数Memcache:getStats - 返回服务器的一些运行统计信息Memcache:getVersion - 返回运行的Memcache的版本信息Memcache:increment - 对保存的某个key中的值

18、进行加法操作Memcache:pconnect - 创建一个Memcache的持久连接对象Memcache:replace -对一个已有的key进行覆写操作Memcache:set - 添加一个值,如果已经存在,则覆写Memcache:setCompressThreshold - 对大于某一大小的数据进行压缩Memcache:setServerParams - 在运行时修改服务器的参数1.Memcache:add用法bool Memcache:add ( string $key , mixed $var , int $flag , int $expire )说明:如果$key不存在的时候,使用

19、这个函数来存储$var的值。功能相同的函数是memcache_add()。参数:$key :将要存储的键值。$var :存储的值,字符型和整型会按原值保存,其他类型自动序列化以后保存。$flag:是否用MEMCACHE_COMPRESSED来压缩存储的值,true表示压缩,false表示不压缩。$expire:存储值的过期时间,如果为0表示不会过期,你可以用unix时间戳或者描述来表示从现在开始的时间,但是你在使用秒数表示的时候,不要超过2592000秒 (表示30天)。返回值:如果成功则返回 TRUE,失败则返回 FALSE。如果$key值已经存在,则会返回FALSE。 其他情况下Memca

20、che:add()的用法类似于Memcache:set()。例子:add(var_key, test variable, false, 30);?2.Memcache:addServer用法bool Memcache:addServer ( string $host , int $port , bool $persistent , int $weight , int $timeout , int $retry_interval , bool $status , callback $failure_callback )说明:添加一个可供使用的服务器地址到连接池中,连接用Memcache:addS

21、erver打开,脚本执行完后自动关闭,或者可以用Memcache:close()手动关闭。相同函数是memcache_add_server()。当用这个方法的时候(相对于Memcache:connect()和 Memcache:pconnect()方法),网络连接只有等需要的时候才会建立,因此不会因为增加很多的服务器到连接池而增加系统负担,因为很多服务器可能没有使用。故障恢复会发生在这个方法执行的任何阶段,只要其他的服务器是正常的,这些连接请求的失败用户不会注意到。任何一种socket或者memcached服务器级的错误可以触发故障恢复。正常的客户端错误比如增加一个存在的键值不会引发故障恢复。

22、参数:$host服务器的地址$port服务器端口$persistent是否是一个持久连接$weight这台服务器在所有服务器中所占的权重$timeout连接的持续时间$retry_interval连接重试的间隔时间,默认为15,设置为-1表示不进行重试$status控制服务器的在线状态$failure_callback允许设置一个回掉函数来处理错误信息。返回值:如果成功则返回 TRUE,失败则返回 FALSE。例子:addServer(memcache_host, 11211);$memcache-addServer(memcache_host2, 11211);$memcache_obj =

23、 memcache_connect(memcache_host, 11211);memcache_add_server($memcache_obj, memcache_host2, 11211);?3.Memcache:close用法bool Memcache:close ( void )说明:关闭memcache服务器连接。这个函数不会关闭长连接,长连接只有在web服务器关闭或者重启的时候才会关闭。相同的函数memcache_close()返回值:如果成功则返回 TRUE,失败则返回 FALSE。例子:connect(memcache_host, 11211);$memcache_obj-c

24、lose();?4.Memcache:connect用法bool Memcache:connect ( string $host , int $port , int $timeout )说明:打开memcached服务器连接,建立一个到memcached服务器的连接,用Memcache:connect打开的连接会在脚本执行完毕后自动关闭。你也可以用Memcache:close()去关闭连接。相同的函数是memcache_connect()。参数:$host:指向memcached正在收听的链接的主机,这个参数会有另一种特殊的连接方式unix:/path/to/memcached.sock,即用

25、unix的域名sockets,这种情况下,端口必须设置为0$port:指向memcached正在收听的链接的端口,用unix的域名sockets的情况下,端口必须设置为0$timeout:用于连接守护进程的秒数,当你改变默认的1秒的值的时候,你需要考虑一下,如果你的连接太慢的话,你可能会失去缓存的优势。返回值:如果成功则返回 TRUE,失败则返回 FALSE。例子:connect(memcache_host, 11211);?5.memcache:debugbool memcache_debug ( bool $on_off )说明:控制调试功能,前提是php在编译的时候使用了-enable-

26、debug选项,否则这个函数不会有作用。参数:$on_off:true表示开启调试,false表示关闭调试返回值:如果php在编译的时候使用了-enable-debug选项,返回true,否则返回false6.Memcache:decrement用法int Memcache:decrement ( string $key , int $value )说明:Memcache:decremen方法的作用是对保存的某个key中的值进行减法操作,用法跟Memcache:increment类似。你也可以用memcache_decrement()函数。参数:Key:想要减少的键的名字Value:想要减少的

27、值。返回值:如果成功,返回被减少后的值,如果失败返回false。例子:connect(localhost, 11211);$memcache-set(test_item, 8);$memcache-increment(test_item, 4);echo $memcache-decrement(test_item, 7);/ 显示 5?这个例子连Memcache:increment函数都一块演示了。7.Memcache:delete用法bool Memcache:delete ( string $key , int $timeout )说明:删除一个key值,如果参数$timeout被设置,那么存储的值会在设置的秒数以后过期,你也可以用函数memcache_delete()返回值:如果成功则返回 TRUE,失败则返回 FALSE。例子:connect(memcache_host, 11211);$memcache_obj-delete(key_to_delete, 10);?8.Memcache:flushbool Memcache:flush ( void )说明:清除所

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1