Memcached客户端性能评测报告
本次memcached客户端评测以JAVA开源客户项目为评测对象,分别选择Memcached-Java-Client、spymemcached、xmemcached、alisoft xplatform asf cache四个项目,其中分别由两个产品基于堵塞式IO和NOI实现的客户端、两个国内开源项目或两个国外开源项目。
选择的客户端简介如下:
<!--[if !supportLists]-->n <!--[endif]-->Memcached-Java-Client
Memcached-Java-Client是官方提供的基于传统阻塞io客户端。官方网址为http://www.whalin.com/memcached/。
<!--[if !supportLists]-->n <!--[endif]-->alisoft xplatform asf cache
alisoft xplatform asf cache是阿里开源的memcached集群的客户端,它是基于Memcached-Java-Client的衍生版本。配置简单,使用也简单,有很详细的中文文档。官方网址为http://code.google.com/p/memcache-client-forjava/。
<!--[if !supportLists]-->n <!--[endif]-->spymemcached
spymemcached是基于Java NOI、单线程、异步处理的高性能memcached客户端,spymemcached对数据的操作采用异步处理方式,对于相同的缓存数据查询操作可以自动进行归并,避免多次服务器请求。spymemcached官网网址为:http://code.google.com/p/spymemcached/。
<!--[if !supportLists]-->n <!--[endif]-->xmemcached
Xmemcached是基于Java NOI、线程安全、同步处理的高性能memcached客户端,支持memcached所有的二进制协议(从1.2.0开始)和文本协议,并且支持对Kestrel(一个scala写的MQ)的兼容访问。官方网址为http://code.google.com/p/xmemcached/,基本入门指南见http://code.google.com/p/xmemcached/wiki/User_Guide_zh。
<!--[if !supportLists]-->2. <!--[endif]-->测试场景说明
<!--[if !supportLists]-->2.1. <!--[endif]-->测试环境说明
<!--[if !supportLists]-->n <!--[endif]-->测试机环境
CPU:双核2.53G
MEM:2G
OS:Linux Ubuntu 11.10 3.0.0-16-generic
<!--[if !supportLists]-->n <!--[endif]-->Memcached
Memcached版本为1.4.13。
<!--[if !supportLists]-->n <!--[endif]-->JDK
JDK版本为1.7。
<!--[if !supportLists]-->n <!--[endif]-->客户端
所有客户端均采用最新版本,具体版本如下:
<!--[if !supportLists]-->u<!--[endif]-->Memcached-Java-Client 2.6.3
<!--[if !supportLists]-->u<!--[endif]-->Spymemcached 2.8.0
<!--[if !supportLists]-->u<!--[endif]-->Xmemcached 1.3.5
<!--[if !supportLists]-->u<!--[endif]-->alisoft xplatform asf cache 2.5.1
<!--[if !supportLists]-->2.2. <!--[endif]-->测试用例
Memcached在测试机启动两个服务端口11211和11212。客户端同时连接两个memcached服务。
性能测试采用三种不同的测试用例。
用例1:随机生成100个32位长度的字符串,使用UUID作为key值,分别进行数据写入、数据读取、数据删除操作。
用例2:随机生成长度为50的HashMap对象(约4k数据量),使用UUID作为key值,分别进行数据写入、数据读取、数据删除操作。
用例3:在100并发线程下,对数据进行新增、获取、删除操作,数据的字节数从64Byte依次累加到51200字节(500k),具体测试数据包括,64、128、256、512、1024、2048、5120、10240、20480、51200、102400、204800、512000。
针对两个测试用例,使用nanobench进行压力测试,使用不同的线程数共进行1000次请求(针对Memcached-Java-Client客户端在实际测试过程中,如使用1000次请求,系统出现too many open files错误,最后降低为500次请求)。
<!--[if !supportLists]-->3. <!--[endif]-->测试结果分析
<!--[if !supportLists]-->3.1. <!--[endif]-->写入性能分析
数据写入性能分析情况如下:
简单对象写入TPS分析
复杂对象写入TPS分析
简单对象写入内存占用分析
复杂对象写入内存占用分析
在较高并发情况下,xmemcached性能优于Spymemcached,在低并发情况下,Spymemcached略优于xmemcached。
在数据写入方面,总体性能排名如下:xmemcachedàspymemcachedà alisoft xplatform asf cacheàMemcached-Java-Client;内存占用方面:xmemcachedàMemcached-Java-Client à alisoft xplatform asf cacheàspymemcached。
<!--[if !supportLists]-->3.2. <!--[endif]-->读取性能分析
数据读取性能分析情况如下:
简单对象读取TPS分析
复杂对象读取TPS分析
简单对象读取内存占用分析
复杂对象读取内存占用分析
在数据读取方面,总体性能排名如下:xmemcachedàspymemcachedàMemcached-Java-Client à alisoft xplatform asf cache;在内存占用方面: xmemcachedàspymemcachedà Memcached-Java-Client à alisoft xplatform asf cache。
<!--[if !supportLists]-->3.3. <!--[endif]-->删除性能分析
数据输出性能分析情况如下:
简单对象删除TPS分析
复杂对象删除TPS分析
简单对象删除内存占用分析
复杂对象删除内存占用分析
在数据删除方面,总体性能排名如下:spymemcachedàxmemcachedà alisoft xplatform asf cache à Memcached-Java-Client;在内存占用方面: xmemcachedàspymemcachedà Memcached-Java-Client à alisoft xplatform asf cache。
备注:从数据上来看在较低线程数的情况下,spymemcached性能明显优于xmemcached,在高负载的情况下,spymemcached性能略优于xmemcached,但spymemcached由于采用异步调用模式(即删除指令发出后,数据并没有被真正删除,后台采用异步提交的方式进行处理),实际数据删除操作并没有处理完成。
<!--[if !supportLists]-->3.4. <!--[endif]-->数据长度变化性能分析
在测试过程中,考虑alisoft xplatform asf cache、Memcached-Java-Client表现性能差强人意,不在对数据长度变化进行测试。调整测试内容为:spymemcached、xmemcached分别在二进制和ASCII协议下的性能变化情况。
数据长度变化TPS影响分析
数据长度变化内存占用影响分析
实际测试结果显示,Xmemcached在整体性能上略占优势。在传输协议的对比结果上有些出乎意料,二进制协议并没有表现出优势,在大多数情况下,ASCII协议具备更好的性能。
对于缓存的数据内容上,数据的长度在10k以内具备较好的性能,对于超过50k的数据,不建议在memcached中进行存储。(结合DB2的4k、8k、16k、32k表空间,如不处理lob字段,数据均在可承受范围之内)
<!--[if !supportLists]-->3.5. <!--[endif]-->总体评价
依据上述测试结果,基于堵塞式IO的memcached客户端alisoft xplatform asf cache和Memcached-Java-Client 在性能上与基于NIO的客户端xmemcached、spymemcached存在较大的差距,基于堵塞式IO的memcached客户端在测试过程中均不定期出现“打开文件数过多”的错误,需要占用更多网络读写资源。
xmemcached除在删除方面性能与spymemcached有一定的差距外,在数据写入、数据读取方面两者没有明显的差距。但在内存控制上,xmemcached具备较明显的优势(在测试过程中,spymemcached在对复杂对象操作过程中出现OOM的错误,有调整JVM的PermSize和内存进行解决);xmemcached本身是基于spymemcached改进而来,几乎具备spymemcached的功能。因此建议在系统应用中选用xmemcached作为memcached客户端。
<!--[if !supportLists]-->4. <!--[endif]-->附录
<!--[if !supportLists]-->4.1. <!--[endif]-->详细测试数据
<!--[if !supportLists]-->n <!--[endif]-->简单对象压力测试结果
操作 |
线程数 |
SpyMemcached |
Xmemcached |
jmc |
asf |
||||
TPS |
MEM |
TPS |
MEM |
TPS |
MEM |
TPS |
MEM |
||
写(set) |
10 |
510.51 |
88102 |
310.97 |
5258 |
120.25 |
59633 |
136.08 |
6020 |
20 |
478.6 |
81439 |
344.12 |
4917 |
106.97 |
53436 |
121.61 |
13328 |
|
50 |
540.68 |
114517 |
388.45 |
9360 |
101.16 |
51011 |
116.76 |
3139 |
|
100 |
462.62 |
82393 |
458.75 |
17255 |
99.87 |
55550 |
100.87 |
11762 |
|
200 |
631.51 |
102839 |
590.35 |
11751 |
89.42 |
18940 |
97.19 |
91386 |
|
300 |
519.25 |
81165 |
637.52 |
13310 |
93.65 |
105222 |
135.91 |
78627 |
|
400 |
541.38 |
65699 |
724.8 |
25330 |
95.48 |
91411 |
115.31 |
242422 |
|
500 |
619.05 |
148441 |
948.45 |
26502 |
94.37 |
46319 |
96.63 |
45344 |
|
读(get) |
10 |
210 |
21539 |
364.7 |
6724 |
242.15 |
131399 |
141.4 |
15082 |
20 |
256.77 |
74909 |
453.64 |
3483 |
190.03 |
132258 |
137.42 |
7285 |
|
50 |
360.22 |
45428 |
522.57 |
8901 |
139.78 |
29540 |
142.23 |
12445 |
|
100 |
489.43 |
76244 |
540.31 |
21706 |
115.72 |
17710 |
149.68 |
16728 |
|
200 |
600.58 |
47630 |
686.78 |
8022 |
135.21 |
89817 |
129.89 |
44619 |
|
300 |
748.08 |
63623 |
916.77 |
11510 |
154.5 |
119221 |
136.83 |
47124 |
|
400 |
1068.16 |
51982 |
1081.32 |
55875 |
182.78 |
130141 |
105.33 |
148399 |
|
500 |
1252.92 |
67872 |
1210.39 |
55683 |
211.66 |
113543 |
94.25 |
156141 |
|
删除(delete) |
10 |
1920 |
60949 |
452.55 |
3302 |
257.21 |
44434 |
327.27 |
5213 |
20 |
2014.29 |
64557 |
512.64 |
6456 |
226.46 |
42114 |
287.08 |
8106 |
|
50 |
1532.33 |
79291 |
604.34 |
9010 |
231.84 |
49590 |
280.05 |
3536 |
|
100 |
1784 |
126154 |
618.21 |
7675 |
201.95 |
39735 |
229.65 |
38890 |
|
200 |
1557.98 |
50025 |
781.64 |
82647 |
242.11 |
35557 |
234.2 |
122619 |
|
300 |
1675.35 |
125495 |
835.51 |
7265 |
325.72 |
59770 |
262.08 |
100943 |
|
400 |
1202.99 |
36298 |
899.95 |
23311 |
256.35 |
66451 |
241.43 |
191719 |
|
500 |
1261.06 |
56263 |
1075.2 |
23440 |
161.15 |
63833 |
146.83 |
197955 |
<!--[if !supportLists]-->n <!--[endif]-->大对象压力测试结果
操作 |
线程数 |
SpyMemcached |
Xmemcached |
jmc |
asf |
||||
TPS |
MEM |
TPS |
MEM |
TPS |
MEM |
TPS |
MEM |
||
写(set) |
10 |
259.24 |
467583 |
222.18 |
255304 |
144.48 |
20764 |
162.02 |
246856 |
20 |
235.75 |
497143 |
235.54 |
15381 |
133.58 |
85895 |
154.8 |
26305 |
|
50 |
237.82 |
482584 |
276.87 |
91160 |
142.85 |
74635 |
140.88 |
257407 |
|
100 |
232.69 |
442517 |
291.82 |
103691 |
118.41 |
15813 |
137.34 |
77771 |
|
200 |
232.1 |
391364 |
335.66 |
17936 |
132.09 |
79607 |
152.05 |
243591 |
|
300 |
250.66 |
392310 |
404.91 |
63163 |
141.37 |
79068 |
152.17 |
174972 |
|
400 |
259.27 |
342082 |
486.08 |
96368 |
120.97 |
97293 |
143.89 |
189039 |
|
500 |
246.1 |
273606 |
449.88 |
155568 |
131.08 |
78614 |
150.08 |
25611 |
|
读(get) |
10 |
178.64 |
174495 |
224.47 |
249417 |
171.26 |
32600 |
160.03 |
246387 |
20 |
183.59 |
140674 |
245.79 |
167597 |
161.99 |
160280 |
138.22 |
253770 |
|
50 |
226.32 |
12239 |
256 |
87253 |
152.9 |
145711 |
80.36 |
255730 |
|
100 |
261.46 |
82222 |
300.66 |
43833 |
157.5 |
159957 |
69.26 |
75928 |
|
200 |
346.15 |
105795 |
307.76 |
52438 |
164.14 |
147615 |
147.08 |
91865 |
|
300 |
349.61 |
53670 |
383.89 |
80387 |
182.28 |
147911 |
124.45 |
93083 |
|
400 |
430.09 |
28327 |
496.69 |
77513 |
177.31 |
145364 |
148.15 |
127157 |
|
500 |
572.84 |
53478 |
487.23 |
94533 |
180.33 |
148534 |
151.33 |
145180 |
|
删除(delete) |
10 |
3174.86 |
64150 |
827.66 |
47583 |
506.36 |
98913 |
663.43 |
223488 |
20 |
3004.99 |
66000 |
923.66 |
60185 |
470.39 |
115510 |
667.98 |
228045 |
|
50 |
4450.18 |
63606 |
950.02 |
54976 |
345 |
104234 |
542.52 |
230123 |
|
100 |
3904.91 |
60183 |
862.95 |
67825 |
426.18 |
110897 |
498.82 |
247312 |
|
200 |
3175.47 |
65761 |
1094.5 |
63657 |
374.3 |
112631 |
531.68 |
238339 |
|
300 |
2046.76 |
71115 |
1289.17 |
59543 |
500.16 |
92836 |
526.47 |
242203 |
|
400 |
1897.26 |
75532 |
1399.28 |
50389 |
418.81 |
107433 |
519.47 |
243653 |
|
500 |
2071.35 |
67690 |
1159.58 |
48333 |
497.9 |
149904 |
513.8 |
243406 |
<!--[if !supportLists]-->n <!--[endif]-->字节数变化压力测试结果
字节数 |
SpyMemcached-bin |
SpyMemcached-txt |
Xmemcached-bin |
Xmemcached-txt |
||||
TPS |
MEM |
TPS |
MEM |
TPS |
MEM |
TPS |
MEM |
|
64 |
2917.58 |
5108 |
2810.18 |
13032 |
3262.03 |
8945 |
4199.25 |
9171 |
128 |
4292.9 |
12312 |
2895.1 |
14109 |
4531.3 |
10094 |
4133.94 |
10406 |
256 |
3592.17 |
14588 |
3196.91 |
16812 |
3038.37 |
11091 |
6550.86 |
11841 |
512 |
3233.89 |
5017 |
4160.2 |
21820 |
7860.32 |
13821 |
7131.74 |
14266 |
1024 |
7361.02 |
30589 |
2470.53 |
8164 |
5109.72 |
17938 |
5703.03 |
3614 |
2048 |
3233.6 |
46527 |
7798.11 |
51387 |
7222.36 |
29494 |
8547.69 |
28575 |
5120 |
3358.58 |
43874 |
5514.08 |
108159 |
5406.71 |
26134 |
6850.01 |
57482 |
10240 |
4440.62 |
84220 |
4117.94 |
23733 |
4584.6 |
37675 |
5092.56 |
110802 |
20480 |
660.46 |
151707 |
778.49 |
139424 |
755.55 |
17418 |
850.55 |
136711 |
51200 |
274.85 |
136410 |
271.22 |
118354 |
289.41 |
113544 |
285.84 |
112371 |
102400 |
118.4 |
80257 |
123.24 |
123402 |
138.35 |
96368 |
139.74 |
155225 |
204800 |
57.59 |
168415 |
58.11 |
125883 |
64.68 |
140794 |
64.86 |
164982 |
512000 |
20.91 |
323064 |
21.76 |
378767 |
24 |
226116 |
24.78 |
113326 |
TPS:每秒通过率
MEM:内存占用情况(单位K)
jmc:Memcached-Java-Client
asf:alisoft xplatform asf cache
<!--[if !supportLists]-->4.2. <!--[endif]-->第三方评测结果
<!--[if !supportLists]-->n <!--[endif]-->Memcached-Java-Client官方评测报告
https://github.com/gwhalin/Memcached-Java-Client/wiki/PERFORMANCE
<!--[if !supportLists]-->n <!--[endif]-->XMemcached官方评测报告
http://xmemcached.googlecode.com/svn/trunk/benchmark/benchmark.html
<!--[if !mso]> <style> v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style> <![endif]--><!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Revision>0</o:Revision> <o:TotalTime>0</o:TotalTime> <o:Pages>1</o:Pages> <o:Words>1208</o:Words> <o:Characters>6888</o:Characters> <o:Company>hulefei</o:Company> <o:Lines>57</o:Lines> <o:Paragraphs>16</o:Paragraphs> <o:CharactersWithSpaces>8080</o:CharactersWithSpaces> <o:Version>14.0</o:Version> </o:DocumentProperties> <o:OfficeDocumentSettings> <o:PixelsPerInch>96</o:PixelsPerInch> <o:TargetScreenSize>800x600</o:TargetScreenSize> </o:OfficeDocumentSettings> </xml><![endif]--> <!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves/> <w:TrackFormatting/> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>10 pt</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF/> <w:LidThemeOther>EN-US</w:LidThemeOther> <w:LidThemeAsian>ZH-CN</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:SplitPgBreakAndParaMark/> <w:EnableOpenTypeKerning/> <w:DontFlipMirrorIndents/> <w:OverrideTableStyleHps/> <w:UseFELayout/> </w:Compatibility> <w:NoLineBreaksAfter Lang="JA">$([{£¥·‘“〈《「『【〔〖〝﹙﹛﹝$(.[{£¥</w:NoLineBreaksAfter> <w:NoLineBreaksBefore Lang="JA">!%),.:;>?]}¢¨°·ˇˉ―‖’”…‰′″›℃∶、。〃〉》」』】〕〗〞︶︺︾﹀﹄﹚﹜﹞!"%'),.:;?]`|}~¢</w:NoLineBreaksBefore> <m:mathPr> <m:mathFont m:val="Cambria Math"/> <m:brkBin m:val="before"/> <m:brkBinSub m:val="--"/> <m:smallFrac m:val="off"/> <m:dispDef/> <m:lMargin m:val="0"/> <m:rMargin m:val="0"/> <m:defJc m:val="centerGroup"/> <m:wrapIndent m:val="1440"/> <m:intLim m:val="subSup"/> <m:naryLim m:val="undOvr"/> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" DefSemiHidden="true" DefQFormat="false" DefPriority="99" LatentStyleCount="276"> <w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Normal"/> <w:LsdException Locked="false" Priority="9" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="heading 1"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/> <w:LsdException Locked="false" Priority="39" Name="toc 1"/> <w:LsdException Locked="false" Priority="39" Name="toc 2"/> <w:LsdException Locked="false" Priority="39" Name="toc 3"/> <w:LsdException Locked="false" Priority="39" Name="toc 4"/> <w:LsdException Locked="false" Priority="39" Name="toc 5"/> <w:LsdException Locked="false" Priority="39" Name="toc 6"/> <w:LsdException Locked="false" Priority="39" Name="toc 7"/> <w:LsdException Locked="false" Priority="39" Name="toc 8"/> <w:LsdException Locked="false" Priority="39" Name="toc 9"/> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/> <w:LsdException Locked="false" Priority="10" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Title"/> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/> <w:LsdException Locked="false" Priority="11" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/> <w:LsdException Locked="false" Priority="22" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Strong"/> <w:LsdException Locked="false" Priority="20" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/> <w:LsdException Locked="false" Priority="59" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid"/> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/> <w:LsdException Locked="false" Priority="1" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 1"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 1"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 1"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/> <w:LsdException Locked="false" Priority="34" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/> <w:LsdException Locked="false" Priority="29" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Quote"/> <w:LsdException Locked="false" Priority="30" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 1"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 1"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 2"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 2"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 2"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 2"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 2"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 3"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 3"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 3"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 3"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 3"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 4"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 4"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 4"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 4"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 4"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 5"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 5"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 5"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 5"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 5"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 6"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 6"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 6"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 6"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 6"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/> <w:LsdException Locked="false" Priority="19" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/> <w:LsdException Locked="false" Priority="21" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/> <w:LsdException Locked="false" Priority="31" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/> <w:LsdException Locked="false" Priority="32" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/> <w:LsdException Locked="false" Priority="33" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Book Title"/> <w:LsdException Locked="false" Priority="37" Name="Bibliography"/> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:Calibri;} </style> <![endif]--> <!--StartFragment--> <!--EndFragment-->
相关推荐
在Java开发中,有三种主流的Memcached客户端库供开发者选择:官方的基于传统阻塞IO的客户端、Dustin Sallings实现的基于Java NIO的Spymemcached以及XMemcached。 1. **官方客户端** 官方提供的客户端是由Greg ...
在描述中提到的“客户端调用dll文件”,指的是 Memcached 的客户端库,通常用于编程语言中与服务端进行通信。例如,如果你使用的是C++,可能会需要`libmemcached.dll`这样的动态链接库。客户端库提供了一套API,允许...
标题"memcached C++ 客户端 源码"表明了这是一个关于使用C++编写的memcached客户端的源代码库。memcached是一款高性能、分布式的内存对象缓存系统,常用于减轻数据库负载,提高Web应用性能。C++客户端则为开发者提供...
在“go语言memcached客户端.zip”这个压缩包中,可能包含了一个或多个Go语言编写的Memcached客户端库的源代码。由于提供的文件名"flghd"并不明确,我们无法直接解析其具体内容,但可以基于通用的Go Memcached客户端...
在这个场景下,"memcached客户端所需jar包"指的是Java开发中用来连接和操作Memcached的库的Java Archive (JAR) 文件。 标题提到的"memcached客户端所需jar包",通常包括以下几个关键组件: 1. **Spymemcached**:...
Memcached客户端 客户端是应用与Memcached交互的接口,常见的客户端库有libmemcached(C语言)、pylibmc(Python)和memcached-client(Java)等。客户端的主要任务包括: - **连接管理**:建立与服务端的TCP连接...
--------------------------------------------windows下的 memcached 客户端工具 -------------------------------------------
**Memcached 客户端与服务端详解** Memcached 是一个高性能、分布式内存对象缓存系统,用于在数据库应用之间存储动态数据,从而减少数据库负载,提高网站性能。它最初由 LiveJournal 的 Danga Interactive 创建,...
**一、Memcached 简介** Memcached 由 Danga Interactive 开发,最初是为 LiveJournal 的高并发需求设计的。它是一个基于键值对的内存存储系统,能够快速地存储和检索数据。由于数据存储在内存中,Memcached 提供了...
**Memcached 客户端与服务端程序及JAR包详解** Memcached 是一个高性能、分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库的负载,提高数据访问速度。它通过将数据和对象存储在内存中,提供快速的数据...
首先,我们需要了解C#中的Memcached客户端是如何工作的。这个客户端通常是一个库,如`Enyim.Caching.Memcached`,它提供了一组接口和类,允许C#应用程序通过网络与Memcached服务器通信。这些客户端库通常实现了基本...
memcached 安装文件,libevent库, C/C++ memcached 客户端库:libmemcached 全套工具:libevent-1.3.tar.gz,memcached-1.2.2.tar.gz,libmemcached-0.42.tar.gz 测试通过的
1. **下载与安装**:这个包是Memcached客户端的一个特定版本,可以通过解压`memcached-1.4.12.tar.gz`来获取源代码,然后在Linux环境下编译安装。 2. **API支持**:包含C,C++,Python,PHP,Java,Perl等语言的...
标题中的“基于mina的一个Memcached客户端首发”指出我们要讨论的是一个使用Apache MINA框架实现的Memcached客户端。Apache MINA是一个网络应用框架,主要用于简化开发高性能且高度可伸缩的网络应用程序,如服务器和...
1. 创建Memcached客户端实例,指定服务器地址和端口。 2. 使用Set方法存储数据,如`client.Set("key", "value")`。 3. 使用Get方法获取数据,如`string value = client.Get("key")`。 4. 使用Delete方法移除数据,如...
一个 python memcached 客户端库。概述该软件是 memcached 内存缓存守护程序的 100% Python 接口。它是客户端软件,允许将值存储在一个或多个(可能是远程的)memcached 服务器中。在 Google 上搜索 memcached 可...
这个项目包含了 Memcached 的服务端(适用于 Windows)以及 Java 客户端,是开发基于 Java 的分布式应用的重要工具。 ### 一、Memcached 服务端 (Win) Memcached 服务端为 Windows 平台提供了轻量级的内存缓存解决...