《Memcached原理和使用详解.ppt》由会员分享,可在线阅读,更多相关《Memcached原理和使用详解.ppt(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Memcached Memcached 原理和使用详解原理和使用详解作者:作者:heiyeluren(heiyeluren(黑夜路人黑夜路人)2009-011l lMemcachedMemcachedMemcachedMemcached介绍介绍介绍介绍l lMemcachedMemcachedMemcachedMemcached安装安装安装安装和使用和使用和使用和使用l l一些技巧一些技巧一些技巧一些技巧l lQ&AQ&AQ&AQ&ATech Talk 目录索引目录索引2MemcachedMemcached介绍介绍:什么是什么是什么是什么是MemcachedMemcachedMemcached
2、Memcached?MemcachedMemcachedMemcachedMemcached是国外社区网站是国外社区网站是国外社区网站是国外社区网站 LiveJournal LiveJournal LiveJournal LiveJournal 的开发团队开发的高性能的分布式内的开发团队开发的高性能的分布式内的开发团队开发的高性能的分布式内的开发团队开发的高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访存缓存服务器。一般的使
3、用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态问次数,以提高动态问次数,以提高动态问次数,以提高动态WebWebWebWeb应用的速度、提高可扩展性。应用的速度、提高可扩展性。应用的速度、提高可扩展性。应用的速度、提高可扩展性。LiveJournal LiveJournal 团队开发了包括团队开发了包括团队开发了包括团队开发了包括 Memcached Memcached、MogileFSMogileFS、Perlbal Perlbal 等不错的开等不错的开等不错的开等不错的开源项目。源项目。源项目。源项目。3MemcachedMemcached介绍介绍MemcachedMem
4、cachedMemcachedMemcached运行图运行图运行图运行图4MemcachedMemcached介绍介绍谁在用谁在用谁在用谁在用MemcachedMemcachedMemcachedMemcached?国外国外国外国外 国内国内国内国内5MemcachedMemcached介绍介绍与与与与MemcachedMemcachedMemcachedMemcached类似的还有什么?类似的还有什么?类似的还有什么?类似的还有什么?国外国外国外国外 Tokyo CabinetTokyo CabinetTokyo CabinetTokyo Cabinet:http:/ _)_)_)_)6Me
5、mcachedMemcached介绍介绍MemcachedMemcachedMemcachedMemcached的主要特点的主要特点的主要特点的主要特点 基于基于基于基于C/SC/SC/SC/S架构,架构,架构,架构,协议简单协议简单协议简单协议简单 基于基于基于基于libeventlibeventlibeventlibevent的事件处理的事件处理的事件处理的事件处理 自主内存存储处理自主内存存储处理自主内存存储处理自主内存存储处理 基于客户端的基于客户端的基于客户端的基于客户端的MemcachedMemcachedMemcachedMemcached分布式分布式分布式分布式7Memcach
6、edMemcached介绍介绍基于基于基于基于C/SC/SC/SC/S架构,协议简单架构,协议简单架构,协议简单架构,协议简单8MemcachedMemcached介绍介绍基于基于基于基于libeventlibeventlibeventlibevent的事件处理的事件处理的事件处理的事件处理libeventlibeventlibeventlibevent是一套跨平台的事件处理接口的封装,能够兼容包括这些操作系统:是一套跨平台的事件处理接口的封装,能够兼容包括这些操作系统:是一套跨平台的事件处理接口的封装,能够兼容包括这些操作系统:是一套跨平台的事件处理接口的封装,能够兼容包括这些操作系统:Wi
7、ndows/Linux/BSD/Solaris Windows/Linux/BSD/Solaris Windows/Linux/BSD/Solaris Windows/Linux/BSD/Solaris 等操作系统的的事件处理。等操作系统的的事件处理。等操作系统的的事件处理。等操作系统的的事件处理。包装的接口包括:包装的接口包括:包装的接口包括:包装的接口包括:pollpollpollpoll、select(Windows)select(Windows)select(Windows)select(Windows)、epoll(Linux)epoll(Linux)epoll(Linux)epol
8、l(Linux)、kqueue(BSD)kqueue(BSD)kqueue(BSD)kqueue(BSD)、/dev/pool(Solaris)/dev/pool(Solaris)/dev/pool(Solaris)/dev/pool(Solaris)Memcached Memcached Memcached Memcached 使用使用使用使用libeventlibeventlibeventlibevent来进行网络并发连接的处理,能够保持在很大并发情来进行网络并发连接的处理,能够保持在很大并发情来进行网络并发连接的处理,能够保持在很大并发情来进行网络并发连接的处理,能够保持在很大并发情况下
9、,仍旧能够保持快速的响应能力。况下,仍旧能够保持快速的响应能力。况下,仍旧能够保持快速的响应能力。况下,仍旧能够保持快速的响应能力。libevent:http:/www.monkey.org/provos/libevent/libevent:http:/www.monkey.org/provos/libevent/libevent:http:/www.monkey.org/provos/libevent/libevent:http:/www.monkey.org/provos/libevent/9MemcachedMemcached介绍介绍自主的内存存储处理自主的内存存储处理自主的内存存储处理
10、自主的内存存储处理 数据数据数据数据存储方式:存储方式:存储方式:存储方式:Slab AllocationSlab AllocationSlab AllocationSlab Allocation 数据数据数据数据过期过期过期过期方式:方式:方式:方式:Lazy Expiration+LRULazy Expiration+LRULazy Expiration+LRULazy Expiration+LRU10MemcachedMemcached介绍介绍数据存储方式:数据存储方式:数据存储方式:数据存储方式:Slab AllocationSlab AllocationSlab Allocation
11、Slab Allocation Slab Alloction Slab Alloction Slab Alloction Slab Alloction 构造图构造图构造图构造图Slab AllocatorSlab AllocatorSlab AllocatorSlab Allocator的基本原理是按照预先的基本原理是按照预先的基本原理是按照预先的基本原理是按照预先规定的大小,将分配的内存分割成特定规定的大小,将分配的内存分割成特定规定的大小,将分配的内存分割成特定规定的大小,将分配的内存分割成特定长度的块,以完全解决内存碎片问题。长度的块,以完全解决内存碎片问题。长度的块,以完全解决内存碎片
12、问题。长度的块,以完全解决内存碎片问题。Slab AllocationSlab AllocationSlab AllocationSlab Allocation的原理相当简单。的原理相当简单。的原理相当简单。的原理相当简单。将将将将分配的内存分割成各种尺寸的块分配的内存分割成各种尺寸的块分配的内存分割成各种尺寸的块分配的内存分割成各种尺寸的块(chunkchunkchunkchunk),并把尺寸相同的块分成组),并把尺寸相同的块分成组),并把尺寸相同的块分成组),并把尺寸相同的块分成组(chunkchunkchunkchunk的集合)的集合)的集合)的集合)11MemcachedMemcach
13、ed介绍介绍数据存储方式:数据存储方式:数据存储方式:数据存储方式:Slab AllocationSlab AllocationSlab AllocationSlab Allocation Slab Classes Slab Classes Slab Classes Slab Classes 分配图分配图分配图分配图PagePagePagePage:分配给:分配给:分配给:分配给SlabSlabSlabSlab的内存空间,默认是的内存空间,默认是的内存空间,默认是的内存空间,默认是1MB1MB1MB1MB。分配给。分配给。分配给。分配给SlabSlabSlabSlab之后根据之后根据之后根据之
14、后根据slabslabslabslab的大小的大小的大小的大小切分成切分成切分成切分成chunkchunkchunkchunk。ChunkChunkChunkChunk:用于缓存记录的内存空间。:用于缓存记录的内存空间。:用于缓存记录的内存空间。:用于缓存记录的内存空间。Slab ClassSlab ClassSlab ClassSlab Class:特定大小的:特定大小的:特定大小的:特定大小的chunkchunkchunkchunk的组。的组。的组。的组。memcachedmemcachedmemcachedmemcached根据收到的数据的大小,选根据收到的数据的大小,选根据收到的数据的
15、大小,选根据收到的数据的大小,选择最适合数据大小的择最适合数据大小的择最适合数据大小的择最适合数据大小的slabslabslabslab。memcachedmemcachedmemcachedmemcached中保存着中保存着中保存着中保存着slabslabslabslab内空闲内空闲内空闲内空闲chunkchunkchunkchunk的的的的列表,根据该列表选择列表,根据该列表选择列表,根据该列表选择列表,根据该列表选择chunkchunkchunkchunk,然后将,然后将,然后将,然后将数据缓存于其中。数据缓存于其中。数据缓存于其中。数据缓存于其中。12MemcachedMemcache
16、d介绍介绍:数据存储方式:数据存储方式:数据存储方式:数据存储方式:Slab AllocationSlab AllocationSlab AllocationSlab Allocation Slab Alloction Slab Alloction Slab Alloction Slab Alloction 缺点缺点缺点缺点这个问题就是,由于分配的是特定长度的内存,因此无法有效利用分这个问题就是,由于分配的是特定长度的内存,因此无法有效利用分这个问题就是,由于分配的是特定长度的内存,因此无法有效利用分这个问题就是,由于分配的是特定长度的内存,因此无法有效利用分配的内存。例如,将配的内存。例如,
17、将配的内存。例如,将配的内存。例如,将100100100100字节的数据缓存到字节的数据缓存到字节的数据缓存到字节的数据缓存到128128128128字节的字节的字节的字节的chunkchunkchunkchunk中,剩余中,剩余中,剩余中,剩余的的的的28282828字节就浪费了。字节就浪费了。字节就浪费了。字节就浪费了。13MemcachedMemcached介绍介绍:数据过期方式数据过期方式数据过期方式数据过期方式 Lazy ExpirationLazy ExpirationLazy ExpirationLazy Expirationmemcachedmemcachedmemcached
18、memcached内部不会监视记录是否过期,而是在内部不会监视记录是否过期,而是在内部不会监视记录是否过期,而是在内部不会监视记录是否过期,而是在getgetgetget时查看记录的时间戳,检查记录是否过时查看记录的时间戳,检查记录是否过时查看记录的时间戳,检查记录是否过时查看记录的时间戳,检查记录是否过期。这种技术被称为期。这种技术被称为期。这种技术被称为期。这种技术被称为lazylazylazylazy(惰性)(惰性)(惰性)(惰性)expirationexpirationexpirationexpiration。因此,。因此,。因此,。因此,memcachedmemcachedmemca
19、chedmemcached不会在过期监视上耗费不会在过期监视上耗费不会在过期监视上耗费不会在过期监视上耗费CPUCPUCPUCPU时间。时间。时间。时间。LRULRULRULRUmemcachedmemcachedmemcachedmemcached会优先使用已超时的记录的空间,但即使如此,也会发生追加新记录时空间不会优先使用已超时的记录的空间,但即使如此,也会发生追加新记录时空间不会优先使用已超时的记录的空间,但即使如此,也会发生追加新记录时空间不会优先使用已超时的记录的空间,但即使如此,也会发生追加新记录时空间不足的情况,此时就要使用名为足的情况,此时就要使用名为足的情况,此时就要使用名为
20、足的情况,此时就要使用名为 Least Recently Used Least Recently Used Least Recently Used Least Recently Used(LRULRULRULRU)机制来分配空间。顾名思义,)机制来分配空间。顾名思义,)机制来分配空间。顾名思义,)机制来分配空间。顾名思义,这是删除这是删除这是删除这是删除“最近最少使用最近最少使用最近最少使用最近最少使用”的记录的机制。因此,当的记录的机制。因此,当的记录的机制。因此,当的记录的机制。因此,当memcachedmemcachedmemcachedmemcached的内存空间不足时(无法的内存空间
21、不足时(无法的内存空间不足时(无法的内存空间不足时(无法从从从从slab class slab class slab class slab class 获取到新的空间时),就从最近未被使用的记录中搜索,并将其空间分配获取到新的空间时),就从最近未被使用的记录中搜索,并将其空间分配获取到新的空间时),就从最近未被使用的记录中搜索,并将其空间分配获取到新的空间时),就从最近未被使用的记录中搜索,并将其空间分配给新的记录。从缓存的实用角度来看,该模型十分理想。给新的记录。从缓存的实用角度来看,该模型十分理想。给新的记录。从缓存的实用角度来看,该模型十分理想。给新的记录。从缓存的实用角度来看,该模型十
22、分理想。14MemcachedMemcached介绍介绍:基于客户端的基于客户端的基于客户端的基于客户端的MemcachedMemcachedMemcachedMemcached分布式分布式分布式分布式15MemcachedMemcached介绍介绍:基于客户端的基于客户端的基于客户端的基于客户端的MemcachedMemcachedMemcachedMemcached分布式分布式分布式分布式/按照按照按照按照KeyKeyKeyKey值,获取一个服务器值,获取一个服务器值,获取一个服务器值,获取一个服务器IDIDIDIDint getServerId(char*key,int serverTo
23、tal)int getServerId(char*key,int serverTotal)int getServerId(char*key,int serverTotal)int getServerId(char*key,int serverTotal)int c,hash=0;int c,hash=0;int c,hash=0;int c,hash=0;while(c=*key+)while(c=*key+)while(c=*key+)while(c=*key+)hash+=c;hash+=c;hash+=c;hash+=c;return hash%serverTotal;return ha
24、sh%serverTotal;return hash%serverTotal;return hash%serverTotal;/服务器列表服务器列表服务器列表服务器列表node0=192.168.0.1:11211node0=192.168.0.1:11211node0=192.168.0.1:11211node0=192.168.0.1:11211node1=192.168.0.2:11211node1=192.168.0.2:11211node1=192.168.0.2:11211node1=192.168.0.2:11211node2=192.168.0.3:11211node2=192
25、.168.0.3:11211node2=192.168.0.3:11211node2=192.168.0.3:11211/获取获取获取获取keykeykeykey是是是是tokyotokyotokyotokyo的节点的节点的节点的节点ID(ID(ID(ID(服务器服务器服务器服务器ID)ID)ID)ID)int id=getServerId(test,3);int id=getServerId(test,3);int id=getServerId(test,3);int id=getServerId(test,3);/得出的结果是得出的结果是得出的结果是得出的结果是1 1 1 1,那么对应的机
26、器就是,那么对应的机器就是,那么对应的机器就是,那么对应的机器就是 nodeid=node1nodeid=node1nodeid=node1nodeid=node116MemcachedMemcached介绍介绍:基于客户端的基于客户端的基于客户端的基于客户端的MemcachedMemcachedMemcachedMemcached分布式分布式分布式分布式 写入操作写入操作写入操作写入操作 读取操作读取操作读取操作读取操作17MemcachedMemcached安装和使用安装和使用:Memcached Memcached Memcached Memcached 安装安装安装安装 Memcach
27、ed Memcached Memcached Memcached 与与与与 PHP PHP PHP PHP 结合使用结合使用结合使用结合使用 Memcached Memcached Memcached Memcached 与与与与 C/C+C/C+C/C+C/C+结合使用结合使用结合使用结合使用18MemcachedMemcached安装和使用安装和使用:Memcached Memcached Memcached Memcached 安装安装安装安装安装步骤:安装步骤:安装步骤:安装步骤:先安装先安装先安装先安装 libevent libevent 再安装再安装再安装再安装 Memcached
28、 Memcached 主程序主程序主程序主程序源码下载:源码下载:源码下载:源码下载:(最新版最新版最新版最新版)libeventlibevent官网:官网:官网:官网:http:/monkey.org/provos/libevent/http:/monkey.org/provos/libevent/19MemcachedMemcached安装和使用安装和使用:Memcached Memcached Memcached Memcached 安装安装安装安装 安装安装安装安装 libevent libevent#./configure-prefix=/usr#./configure-prefix
29、=/usr#makemake#make installmake install 安装安装安装安装 Memcached Memcached#./configure-prefix=/usr/local./configure-prefix=/usr/local#make#make#make install#make install20MemcachedMemcached安装和使用安装和使用:Memcached Memcached Memcached Memcached 运行运行运行运行 试试试试运行运行运行运行 Memcached Memcached#/usr/local/bin/memcached
30、-u hualiangxie#/usr/local/bin/memcached-u hualiangxie21MemcachedMemcached安装和使用安装和使用:Memcached Memcached Memcached Memcached 运行运行运行运行查看查看查看查看Memcached Memcached 帮助信息帮助信息帮助信息帮助信息#/usr/local/bin/memcached -h#/usr/local/bin/memcached -h22MemcachedMemcached安装和使用安装和使用:Memcached Memcached Memcached Memcach
31、ed 运行运行运行运行关注基本选项关注基本选项关注基本选项关注基本选项-p -p 监听的监听的TCPTCP端口端口(缺省缺省:11211):11211)-d -d 以守护进程方式运行以守护进程方式运行MemcachedMemcached-u -u 运行运行MemcachedMemcached的账户,非的账户,非rootroot用户用户-m -m 最大的内存使用最大的内存使用,单位是单位是MBMB,缺省是,缺省是 64 MB 64 MB-c -c 软连接数量软连接数量,缺省是缺省是 1024 1024-v -v 输出警告和错误信息输出警告和错误信息-vv -vv 打印客户端的请求和返回信息打印客
32、户端的请求和返回信息-h -h 打印帮助信息打印帮助信息-i -i 打印打印memcachedmemcached和和libeventlibevent的版权信息的版权信息运行运行运行运行 Memcached Memcached目标:使用目标:使用1121111211端口、端口、hualiangxiehualiangxie用户、最大占用用户、最大占用512M512M内存、内存、10241024个软连接,输出客个软连接,输出客户端请求,以守护进程方式运行户端请求,以守护进程方式运行#/usr/local/bin/memcached-p 11211-d-u hualiangxie-m 512-c 10
33、24-vvv#/usr/local/bin/memcached-p 11211-d-u hualiangxie-m 512-c 1024-vvv23MemcachedMemcached安装和使用安装和使用:Memcached Memcached Memcached Memcached 运行运行运行运行检查是否正常启动检查是否正常启动检查是否正常启动检查是否正常启动#pa auxxww|grep memcachedpa auxxww|grep memcached1001 4402 0.0 0.0 2296 900 pts/0 S+19:24 0:00/usr/local/bin/memcache
34、d-u hualiangxie1001 4402 0.0 0.0 2296 900 pts/0 S+19:24 0:00/usr/local/bin/memcached-u hualiangxie root 4547 0.0 0.0 1892 668 pts/3 S+19:42 0:00 grep memcached root 4547 0.0 0.0 1892 668 pts/3 S+19:42 0:00 grep memcached#telnet localhost 11211telnet localhost 11211Trying 127.0.0.1.Trying 127.0.0.1.C
35、onnected to localhost.Connected to localhost.Escape character is.Escape character is.statsstatsSTAT pid 4402STAT pid 4402STAT uptime 1032STAT uptime 1032STAT time 1231155683STAT time 1231155683STAT pointer_size 32STAT pointer_size 32.ENDEND24MemcachedMemcached安装和使用安装和使用:Memcached Memcached Memcached
36、 Memcached 基本协议基本协议基本协议基本协议数据存取数据存取数据存取数据存取set key1 0 180 3set key1 0 180 3abcabcSTOREDSTOREDadd key1 0 180 3add key1 0 180 3xyzxyzNOT_STOREDNOT_STOREDget key1get key1VALUE key1 0 3VALUE key1 0 3abcabcENDENDreplace key1 0 180 3replace key1 0 180 3xyzxyzSTOREDSTOREDget key1get key1VALUE key1 0 3VALUE
37、 key1 0 3xyzxyzENDENDdelete key1delete key1DELETEDDELETED数字加减数字加减数字加减数字加减set key2 0 180 4set key2 0 180 412341234STOREDSTOREDincr key2 3incr key2 312371237get key2get key2VALUE key2 0 4VALUE key2 0 412371237ENDENDdecr key2 1decr key2 112361236get key2get key2VALUE key2 0 4VALUE key2 0 412361236ENDEN
38、D25MemcachedMemcached安装和使用安装和使用:Memcached Memcached Memcached Memcached 和和和和 PHP PHP PHP PHP 结合使用结合使用结合使用结合使用安装安装安装安装 PHP Memcache PHP Memcache 扩展扩展扩展扩展扩展官网:扩展官网:扩展下载:扩展下载:MemcacheMemcache扩展安装:扩展安装:#/usr/local/php/bin/phpize#/usr/local/php/bin/phpize#./configure-with-php-config=/usr/local/php/bin/ph
39、p-config#./configure-with-php-config=/usr/local/php/bin/php-config#make#make#make install#make install配置配置配置配置#ls-l/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/memcache.so#ls-l/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/memcache.so#vim/usr/local/php/lib/php.ini#vim/usr
40、/local/php/lib/php.ini 新增配置内容:新增配置内容:extension_dir=/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/extension_dir=/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/extension=memcache.soextension=memcache.so检查安装结果检查安装结果检查安装结果检查安装结果#/usr/local/php/bin/php-m#/usr/local/php/bin/php-
41、m#/usr/local/apache2/bin/apachectl restart#/usr/local/apache2/bin/apachectl restart26MemcachedMemcached安装和使用安装和使用:Memcached Memcached Memcached Memcached 与与与与 PHP PHP PHP PHP 结合使用结合使用结合使用结合使用PHPPHP与与与与MemcacheMemcache结合测试代码结合测试代码结合测试代码结合测试代码?phpconnect(localhost,11211);$mem-connect(localhost,11211);
42、/保存数据保存数据$mem-set(key1,This is first value,0,60);$mem-set(key1,This is first value,0,60);$val=$mem-get(key1);$val=$mem-get(key1);echo Get key1 value:.$val.;echo Get key1 value:.$val.;/替换数据替换数据$mem-replace(key1,This is replace value,0,60);$mem-replace(key1,This is replace value,0,60);$val=$mem-get(ke
43、y1);$val=$mem-get(key1);echo Get key1 value:.$val.;echo Get key1 value:.$val.;/保存数组数据保存数组数据$arr=array(aaa,bbb,ccc,ddd);$arr=array(aaa,bbb,ccc,ddd);$mem-set(key2,$arr,0,60);$mem-set(key2,$arr,0,60);$val2=$mem-get(key2);$val2=$mem-get(key2);echo Get key2 value:;echo Get key2 value:;print_r($val2);prin
44、t_r($val2);echo;echo;/删除数据删除数据$mem-delete(key1);$mem-delete(key1);$val=$mem-get(key1);$val=$mem-get(key1);echo Get key1 value:.$val.;echo Get key1 value:.$val.;/清除所有数据清除所有数据$mem-flush();$mem-flush();$val2=$mem-get(key2);$val2=$mem-get(key2);echo Get key2 value:;echo Get key2 value:;print_r($val2);pr
45、int_r($val2);echo;echo;/关闭连接关闭连接$mem-close();$mem-close();?27MemcachedMemcached安装和使用安装和使用:Memcached Memcached Memcached Memcached 与与与与 PHP PHP PHP PHP 结合使用结合使用结合使用结合使用PHPPHP与与与与MemcacheMemcache分布式分布式分布式分布式在一台或者多台机器启用一个或者多个进程,这里是在一台机器启在一台或者多台机器启用一个或者多个进程,这里是在一台机器启用两个进程,使用两个端口:用两个进程,使用两个端口:#/usr/local
46、/bin/memcached-p 11211-d-u hualiangxie/usr/local/bin/memcached-p 11211-d-u hualiangxie#/usr/local/bin/memcached-p 11212-d-u hualiangxie/usr/local/bin/memcached-p 11212-d-u hualiangxie PHP PHP 测试代码测试代码测试代码测试代码?phpaddServer(localhost,11211);$mem-addServer(localhost,11211);$mem-addServer(localhost,1121
47、2);$mem-addServer(localhost,11212);/保存数据保存数据$mem-set(key1,This is first value,0,60);$mem-set(key1,This is first value,0,60);$val=$mem-get(key1);$val=$mem-get(key1);echo Get key1 value:.$val.;echo Get key1 value:.$val.;/保存数组数据保存数组数据$arr=array(aaa,bbb,ccc,ddd);$arr=array(aaa,bbb,ccc,ddd);$mem-set(key2
48、,$arr,0,60);$mem-set(key2,$arr,0,60);$val2=$mem-get(key2);$val2=$mem-get(key2);echo Get key2 value:;echo Get key2 value:;print_r($val2);print_r($val2);echo;echo;/删除数据删除数据$mem-delete(key1);$mem-delete(key1);$val=$mem-get(key1);$val=$mem-get(key1);echo Get key1 value:.$val.;echo Get key1 value:.$val.;
49、/关闭连接关闭连接$mem-close();$mem-close();?注意:实际上注意:实际上Key1Key1保存在保存在1121111211 端口机器,端口机器,Key2Key2保存在保存在1121211212端口机器上端口机器上28MemcachedMemcached安装和使用安装和使用:Memcached Memcached Memcached Memcached 和和和和 C/C+C/C+C/C+C/C+结合使用结合使用结合使用结合使用安装安装安装安装 C/C+Memcached C/C+Memcached 客户端库:客户端库:客户端库:客户端库:libmemcachedlibmem
50、cached开发库官网:开发库官网:http:/tangent.org/552/libmemcached.htmlhttp:/tangent.org/552/libmemcached.html开发库下载:开发库下载:libmemcachedlibmemcached库安装:库安装:#cd libmemcached-0.25#cd libmemcached-0.25#./configure-prefix=/usr#./configure-prefix=/usr#make#make#make install#make install检查安装结果检查安装结果检查安装结果检查安装结果#ls/usr/li