Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
memcachedÈ«ÃæÆÊÎö¨C3. memcachedµÄɾ³ý»úÖÆºÍ·¢Õ¹·½Ïò
 
×÷Õߣº³¤Ò°ÑŹã(Masahiro Nagano) À´Ô´£º²©¿ÍÔ° ·¢²¼ÓÚ£º2015-1-29
  2215  次浏览      27
 

memcachedÊÇ»º´æ£¬ËùÒÔÊý¾Ý²»»áÓÀ¾Ã±£´æÔÚ·þÎñÆ÷ÉÏ£¬ÕâÊÇÏòϵͳÖÐÒýÈëmemcachedµÄǰÌá¡£ ±¾´Î½éÉÜmemcachedµÄÊý¾Ýɾ³ý»úÖÆ£¬ÒÔ¼°memcachedµÄ×îз¢Õ¹·½Ïò¡ª¡ª¶þ½øÖÆÐ­Ò飨Binary Protocol£© ºÍÍⲿÒýÇæÖ§³Ö¡£

memcachedÔÚÊý¾Ýɾ³ý·½ÃæÓÐЧÀûÓÃ×ÊÔ´

Êý¾Ý²»»áÕæÕý´ÓmemcachedÖÐÏûʧ

ÉϴνéÉܹý£¬ memcached²»»áÊÍ·ÅÒÑ·ÖÅäµÄÄÚ´æ¡£¼Ç¼³¬Ê±ºó£¬¿Í»§¶Ë¾ÍÎÞ·¨ÔÙ¿´¼û¸Ã¼Ç¼£¨invisible£¬Í¸Ã÷£©£¬ Æä´æ´¢¿Õ¼ä¼´¿ÉÖØ¸´Ê¹Óá£

Lazy Expiration

memcachedÄÚ²¿²»»á¼àÊӼǼÊÇ·ñ¹ýÆÚ£¬¶øÊÇÔÚgetʱ²é¿´¼Ç¼µÄʱ¼ä´Á£¬¼ì²é¼Ç¼ÊÇ·ñ¹ýÆÚ¡£ ÕâÖÖ¼¼Êõ±»³ÆÎªlazy£¨¶èÐÔ£©expiration¡£Òò´Ë£¬memcached²»»áÔÚ¹ýÆÚ¼àÊÓÉϺķÑCPUʱ¼ä¡£

LRU£º´Ó»º´æÖÐÓÐЧɾ³ýÊý¾ÝµÄÔ­Àí

memcached»áÓÅÏÈʹÓÃÒѳ¬Ê±µÄ¼Ç¼µÄ¿Õ¼ä£¬µ«¼´Ê¹Èç´Ë£¬Ò²»á·¢Éú×·¼ÓмǼʱ¿Õ¼ä²»×ãµÄÇé¿ö£¬ ´Ëʱ¾ÍҪʹÓÃÃûΪ Least Recently Used£¨LRU£©»úÖÆÀ´·ÖÅä¿Õ¼ä¡£ ¹ËÃû˼Ò壬ÕâÊÇɾ³ý¡°×î½ü×îÉÙʹÓᱵļǼµÄ»úÖÆ¡£ Òò´Ë£¬µ±memcachedµÄÄÚ´æ¿Õ¼ä²»×ãʱ£¨ÎÞ·¨´Óslab class »ñÈ¡µ½ÐµĿռäʱ£©£¬¾Í´Ó×î½üδ±»Ê¹ÓõļǼÖÐËÑË÷£¬²¢½«Æä¿Õ¼ä·ÖÅ䏸еļǼ¡£ ´Ó»º´æµÄʵÓýǶÈÀ´¿´£¬¸ÃÄ£ÐÍÊ®·ÖÀíÏë¡£

²»¹ý£¬ÓÐЩÇé¿öÏÂLRU»úÖÆ·´µ¹»áÔì³ÉÂé·³¡£memcachedÆô¶¯Ê±Í¨¹ý¡°-M¡±²ÎÊý¿ÉÒÔ½ûÖ¹LRU£¬ÈçÏÂËùʾ£º

$ memcached -M -m 1024

Æô¶¯Ê±±ØÐë×¢ÒâµÄÊÇ£¬Ð¡Ð´µÄ¡°-m¡±Ñ¡ÏîÊÇÓÃÀ´Ö¸¶¨×î´óÄÚ´æ´óСµÄ¡£²»Ö¸¶¨¾ßÌåÊýÖµÔòʹÓÃĬÈÏÖµ64MB¡£

Ö¸¶¨¡°-M¡±²ÎÊýÆô¶¯ºó£¬ÄÚ´æÓþ¡Ê±memcached»á·µ»Ø´íÎó¡£ »°Ëµ»ØÀ´£¬memcached±Ï¾¹²»ÊÇ´æ´¢Æ÷£¬¶øÊÇ»º´æ£¬ËùÒÔÍÆ¼öʹÓÃLRU¡£

memcachedµÄ×îз¢Õ¹·½Ïò

memcachedµÄroadmapÉÏÓÐÁ½¸ö´óµÄÄ¿±ê¡£Ò»¸öÊǶþ½øÖÆÐ­ÒéµÄ²ß»®ºÍʵÏÖ£¬ÁíÒ»¸öÊÇÍⲿÒýÇæµÄ¼ÓÔØ¹¦ÄÜ¡£

¹ØÓÚ¶þ½øÖÆÐ­Òé

ʹÓöþ½øÖÆÐ­ÒéµÄÀíÓÉÊÇËü²»ÐèÒªÎı¾Ð­ÒéµÄ½âÎö´¦Àí£¬Ê¹µÃÔ­±¾¸ßËÙµÄmemcachedµÄÐÔÄܸüÉÏÒ»²ãÂ¥£¬ »¹ÄܼõÉÙÎı¾Ð­ÒéµÄ©¶´¡£Ä¿Ç°ÒѴ󲿷ÖʵÏÖ£¬¿ª·¢ÓõĴúÂë¿âÖÐÒѰüº¬Á˸ù¦ÄÜ¡£ memcachedµÄÏÂÔØÒ³ÃæÉÏÓдúÂë¿âµÄÁ´½Ó¡£

http://danga.com/memcached/download.bml

¶þ½øÖÆÐ­ÒéµÄ¸ñʽ

ЭÒéµÄ°üΪ24×Ö½ÚµÄÖ¡£¬ÆäºóÃæÊǼüºÍÎ޽ṹÊý¾Ý£¨Unstructured Data£©¡£ ʵ¼ÊµÄ¸ñʽÈçÏ£¨Òý×ÔЭÒéÎĵµ£©£º

Byte/     0       |       1       |       2       |       3       |   
/ | | | |
|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+---------------+---------------+---------------+---------------+
0/ HEADER /
/ /
/ /
/ /
+---------------+---------------+---------------+---------------+
24/ COMMAND-SPECIFIC EXTRAS (as needed) /
+/ (note length in th extras length header field) /
+---------------+---------------+---------------+---------------+
m/ Key (as needed) /
+/ (note length in key length header field) /
+---------------+---------------+---------------+---------------+
n/ Value (as needed) /
+/ (note length is total body length header field, minus /
+/ sum of the extras and key length body fields) /
+---------------+---------------+---------------+---------------+
Total 24 bytes

ÈçÉÏËùʾ£¬°ü¸ñʽʮ·Ö¼òµ¥¡£ÐèҪעÒâµÄÊÇ£¬Õ¼¾ÝÁË16×Ö½ÚµÄÍ·²¿(HEADER)·ÖΪ ÇëÇóÍ·£¨Request Header£©ºÍÏìӦͷ£¨Response Header£©Á½ÖÖ¡£ Í·²¿Öаüº¬Á˱íʾ°üµÄÓÐЧÐÔµÄMagic×Ö½Ú¡¢ÃüÁîÖÖÀà¡¢¼ü³¤¶È¡¢Öµ³¤¶ÈµÈÐÅÏ¢£¬¸ñʽÈçÏ£º

Request Header

 Byte/     0       |       1       |       2       |       3       |
    /              |               |               |               |
   |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
   +---------------+---------------+---------------+---------------+
  0| Magic         | Opcode        | Key length                    |
   +---------------+---------------+---------------+---------------+
  4| Extras length | Data type     | Reserved                      |
   +---------------+---------------+---------------+---------------+
  8| Total body length                                             |
   +---------------+---------------+---------------+---------------+
 12| Opaque                                                        |
   +---------------+---------------+---------------+---------------+
 16| CAS                                                           |
   |                                                               |
   +---------------+---------------+---------------+---------------+
Response Header

 Byte/     0       |       1       |       2       |       3       |
    /              |               |               |               |
   |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
   +---------------+---------------+---------------+---------------+
  0| Magic         | Opcode        | Key Length                    |
   +---------------+---------------+---------------+---------------+
  4| Extras length | Data type     | Status                        |
   +---------------+---------------+---------------+---------------+
  8| Total body length                                             |
   +---------------+---------------+---------------+---------------+
 12| Opaque                                                        |
   +---------------+---------------+---------------+---------------+
 16| CAS                                                           |
   |                                                               |
   +---------------+---------------+---------------+---------------+

ÈçÏ£ÍûÁ˽â¸÷¸ö²¿·ÖµÄÏêϸÄÚÈÝ£¬¿ÉÒÔcheckout³ömemcachedµÄ¶þ½øÖÆÐ­ÒéµÄ´úÂëÊ÷£¬ ²Î¿¼ÆäÖеÄdocsÎļþ¼ÐÖеÄprotocol_binary.txtÎĵµ¡£

HEADERÖÐÒýÈËעĿµÄµØ·½

¿´µ½HEADER¸ñʽºóÎҵĸÐÏëÊÇ£¬¼üµÄÉÏÏÞÌ«´óÁË£¡ÏÖÔÚµÄmemcached¹æ¸ñÖУ¬¼ü³¤¶È×î´óΪ250×Ö½Ú£¬ µ«¶þ½øÖÆÐ­ÒéÖмüµÄ´óСÓÃ2×Ö½Ú±íʾ¡£Òò´Ë£¬ÀíÂÛÉÏ×î´ó¿ÉʹÓÃ65536×Ö½Ú£¨2<sup>16</sup>£©³¤µÄ¼ü¡£ ¾¡¹Ü250×Ö½ÚÒÔÉϵļü²¢²»»áÌ«³£Ó㬶þ½øÖÆÐ­Òé·¢²¼Ö®ºó¾Í¿ÉÒÔʹÓþ޴óµÄ¼üÁË¡£

¶þ½øÖÆÐ­Òé´ÓÏÂÒ»°æ±¾1.3ϵÁпªÊ¼Ö§³Ö¡£

ÍⲿÒýÇæÖ§³Ö

ÎÒÈ¥ÄêÔø¾­ÊÔÑéÐԵؽ«memcachedµÄ´æ´¢²ã¸ÄÔì³ÉÁË¿ÉÀ©Õ¹µÄ£¨pluggable£©¡£

http://alpha.mixi.co.jp/blog/?p=129

MySQLµÄBrian Aker¿´µ½Õâ¸ö¸ÄÔìÖ®ºó£¬¾Í½«´úÂë·¢µ½ÁËmemcachedµÄÓʼþÁÐ±í¡£ memcachedµÄ¿ª·¢ÕßҲʮ·Ö¸ÐÐËȤ£¬¾Í·Åµ½ÁËroadmapÖС£ÏÖÔÚÓÉÎÒºÍ memcachedµÄ¿ª·¢ÕßTrond NorbyeЭͬ¿ª·¢£¨¹æ¸ñÉè¼Æ¡¢ÊµÏֺͲâÊÔ£©¡£ ºÍ¹úÍâЭͬ¿ª·¢Ê±Ê±²îÊǸö´óÎÊÌ⣬µ«±§×ÅÏàͬµÄÔ¸¾°£¬ ×îºóÖÕÓÚ¿ÉÒÔ½«¿ÉÀ©Õ¹¼Ü¹¹µÄÔ­Ð͹«²¼ÁË¡£ ´úÂë¿â¿ÉÒÔ´ÓmemcachedµÄÏÂÔØÒ³Ãæ ÉÏ·ÃÎÊ¡£

ÍⲿÒýÇæÖ§³ÖµÄ±ØÒªÐÔ

ÊÀ½çÉÏÓÐÐí¶àmemcachedµÄÅÉÉúÈí¼þ£¬ÆäÀíÓÉÊÇÏ£ÍûÓÀ¾Ã±£´æÊý¾Ý¡¢ÊµÏÖÊý¾ÝÈßÓàµÈ£¬ ¼´Ê¹ÎþÉüһЩÐÔÄÜÒ²ÔÚËù²»Ï§¡£ÎÒÔÚ¿ª·¢memcached֮ǰ£¬ÔÚmixiµÄÑз¢²¿Ò²Ôø¾­ ¿¼ÂǹýÖØÐ·¢Ã÷memcached¡£

ÍⲿÒýÇæµÄ¼ÓÔØ»úÖÆÄÜ·â×°memcachedµÄÍøÂ繦ÄÜ¡¢Ê¼þ´¦ÀíµÈ¸´ÔӵĴ¦Àí¡£ Òò´Ë£¬ÏÖ½×¶Îͨ¹ýÇ¿ÖÆÊֶλòÖØÐÂÉè¼ÆµÈ·½Ê½Ê¹memcachedºÍ´æ´¢ÒýÇæºÏ×÷µÄÀ§ÄÑ ¾Í»áÑÌÏûÔÆÉ¢£¬³¢ÊÔ¸÷ÖÖÒýÇæ¾Í»á±äµÃÇá¶øÒ×¾ÙÁË¡£

¼òµ¥APIÉè¼ÆµÄ³É¹¦µÄ¹Ø¼ü

¸ÃÏîÄ¿ÖÐÎÒÃÇ×îÖØÊÓµÄÊÇAPIÉè¼Æ¡£º¯Êý¹ý¶à£¬»áʹÒýÇæ¿ª·¢Õ߸е½Âé·³£» ¹ýÓÚ¸´ÔÓ£¬ÊµÏÖÒýÇæµÄÃż÷¾Í»á¹ý¸ß¡£Òò´Ë£¬×î³õ°æ±¾µÄ½Ó¿Úº¯ÊýÖ»ÓÐ13¸ö¡£ ¾ßÌåÄÚÈÝÏÞÓÚÆª·ù£¬ÕâÀï¾ÍÊ¡ÂÔÁË£¬½ö˵Ã÷Ò»ÏÂÒýÇæÓ¦µ±Íê³ÉµÄ²Ù×÷£º

ÒýÇæÐÅÏ¢£¨°æ±¾µÈ£©

ÒýÇæ³õʼ»¯

ÒýÇæ¹Ø±Õ

ÒýÇæµÄͳ¼ÆÐÅÏ¢

ÔÚÈÝÁ¿·½Ã棬²âÊÔ¸ø¶¨¼Ç¼ÄÜ·ñ±£´æ

Ϊitem£¨¼Ç¼£©½á¹¹·ÖÅäÄÚ´æ

ÊÍ·Åitem£¨¼Ç¼£©µÄÄÚ´æ

ɾ³ý¼Ç¼

±£´æ¼Ç¼

»ØÊռǼ

¸üмǼµÄʱ¼ä´Á

ÊýѧÔËËã´¦Àí

Êý¾ÝµÄflush

¶ÔÏêϸ¹æ¸ñÓÐÐËȤµÄ¶ÁÕߣ¬¿ÉÒÔcheckout engineÏîÄ¿µÄ´úÂ룬ÔĶÁÆ÷ÖеÄengine.h¡£

ÖØÐÂÉóÊÓÏÖÔÚµÄÌåϵ

memcachedÖ§³ÖÍⲿ´æ´¢µÄÄѵãÊÇ£¬ÍøÂçºÍʼþ´¦ÀíÏà¹ØµÄ´úÂ루ºËÐÄ·þÎñÆ÷£©Óë ÄÚ´æ´æ´¢µÄ´úÂë½ôÃܹØÁª¡£ÕâÖÖÏÖÏóÒ²³ÆÎªtightly coupled£¨½ôÃÜñîºÏ£©¡£ ±ØÐ뽫ÄÚ´æ´æ´¢µÄ´úÂë´ÓºËÐÄ·þÎñÆ÷ÖжÀÁ¢³öÀ´£¬²ÅÄÜÁé»îµØÖ§³ÖÍⲿÒýÇæ¡£ Òò´Ë£¬»ùÓÚÎÒÃÇÉè¼ÆµÄAPI£¬memcached±»Öع¹³ÉÏÂÃæµÄÑù×Ó£º

ÖØ¹¹Ö®ºó£¬ÎÒÃÇÓë1.2.5°æ¡¢¶þ½øÖÆÐ­ÒéÖ§³Ö°æµÈ½øÐÐÁËÐÔÄܶԱȣ¬Ö¤ÊµÁËËü²»»áÔì³ÉÐÔÄÜÓ°Ïì¡£

ÔÚ¿¼ÂÇÈçºÎÖ§³ÖÍⲿÒýÇæ¼ÓÔØÊ±£¬ÈÃmemcached½øÐв¢ÐпØÖÆ£¨concurrency control£©µÄ·½°¸ÊÇ×îΪÈÝÒ׵ģ¬ µ«ÊǶÔÓÚÒýÇæ¶øÑÔ£¬²¢ÐпØÖÆÕýÊÇÐÔÄܵÄÕæÚУ¬Òò´ËÎÒÃDzÉÓÃÁ˽«¶àÏß³ÌÖ§³ÖÍêÈ«½»¸øÒýÇæµÄÉè¼Æ·½°¸¡£

ÒÔºóµÄ¸Ä½ø£¬»áʹµÃmemcachedµÄÓ¦Ó÷¶Î§¸üΪ¹ã·º¡£

×ܽá

±¾´Î½éÉÜÁËmemcachedµÄ³¬Ê±Ô­Àí¡¢ÄÚ²¿ÈçºÎɾ³ýÊý¾ÝµÈ£¬ÔÚ´ËÖ®ÉÏÓÖ½éÉÜÁ˶þ½øÖÆÐ­ÒéºÍ ÍⲿÒýÇæÖ§³ÖµÈmemcachedµÄ×îз¢Õ¹·½Ïò¡£ÕâЩ¹¦ÄÜÒªµ½1.3°æ²Å»áÖ§³Ö£¬¾´ÇëÆÚ´ý£¡

ÕâÊÇÎÒÔÚ±¾Á¬ÔØÖеÄ×îºóһƪ¡£¸Ðл´ó¼ÒÔĶÁÎÒµÄÎÄÕ£¡

Ï´ÎÓɳ¤Ò°À´½éÉÜmemcachedµÄÓ¦ÓÃ֪ʶºÍÓ¦ÓóÌÐò¼æÈÝÐÔµÈÄÚÈÝ¡£

   
2215 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

MySQLË÷Òý±³ºóµÄÊý¾Ý½á¹¹
MySQLÐÔÄܵ÷ÓÅÓë¼Ü¹¹Éè¼Æ
SQL ServerÊý¾Ý¿â±¸·ÝÓë»Ö¸´
ÈÃÊý¾Ý¿â·ÉÆðÀ´ 10´óDB2ÓÅ»¯
oracleµÄÁÙʱ±í¿Õ¼äдÂú´ÅÅÌ
Êý¾Ý¿âµÄ¿çƽ̨Éè¼Æ


²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿â
¸ß¼¶Êý¾Ý¿â¼Ü¹¹Éè¼ÆÊ¦
HadoopÔ­ÀíÓëʵ¼ù
Oracle Êý¾Ý²Ö¿â
Êý¾Ý²Ö¿âºÍÊý¾ÝÍÚ¾ò
OracleÊý¾Ý¿â¿ª·¢Óë¹ÜÀí


GE Çø¿éÁ´¼¼ÊõÓëʵÏÖÅàѵ
º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Nodejs¸ß¼¶Ó¦Óÿª·¢
ÖÐÊ¢Òæ»ª ׿Խ¹ÜÀíÕß±ØÐë¾ß±¸µÄÎåÏîÄÜÁ¦
ijÐÅÏ¢¼¼Êõ¹«Ë¾ PythonÅàѵ
ij²©²ÊITϵͳ³§ÉÌ Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À
ÖйúÓÊ´¢ÒøÐÐ ²âÊÔ³ÉÊì¶ÈÄ£Ðͼ¯³É(TMMI)
ÖÐÎïÔº ²úÆ·¾­ÀíÓë²úÆ·¹ÜÀí