锘??xml version="1.0" encoding="utf-8" standalone="yes"?>日韩亚洲变态另类中文,亚洲av手机在线观看,久久亚洲精品无码播放http://www.tkk7.com/syniii/category/47375.htmlzh-cnThu, 07 Apr 2011 04:50:40 GMTThu, 07 Apr 2011 04:50:40 GMT60[杞琞Consistent Hashing - memcached鍒嗗竷寮忓師鐞?/title><link>http://www.tkk7.com/syniii/articles/340783.html</link><dc:creator>鏉ㄧ綏緗?/dc:creator><author>鏉ㄧ綏緗?/author><pubDate>Wed, 15 Dec 2010 05:35:00 GMT</pubDate><guid>http://www.tkk7.com/syniii/articles/340783.html</guid><wfw:comment>http://www.tkk7.com/syniii/comments/340783.html</wfw:comment><comments>http://www.tkk7.com/syniii/articles/340783.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/syniii/comments/commentRss/340783.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/syniii/services/trackbacks/340783.html</trackback:ping><description><![CDATA[<span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><span style="text-align: left; line-height: 21px; font-family: verdana, sans-serif; font-size: 14px" class="Apple-style-span"> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">涓嬮潰榪欑瘒鏂囩珷鍐欑殑闈炲父濂斤紝緇撳悎memcached鐨?鐗圭偣鍒╃敤Consistent hasning 綆楁硶錛屽彲浠ユ墦閫犱竴涓潪甯稿畬澶囩殑鍒嗗竷寮忕紦瀛樻湇鍔″櫒銆?/p> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px" class="contents"></p> <ul style="padding-bottom: 0px; list-style-type: none; margin: 5px 0px 5px 16px; padding-left: 16px; padding-right: 0px; padding-top: 0px" class="list1"> <li style="padding-bottom: 2px; list-style-type: disc; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 2px"><a style="color: rgb(51,102,153); text-decoration: none" >memcached鐨勫垎甯冨紡</a> <ul style="padding-bottom: 0px; list-style-type: none; margin: 5px 0px 5px 16px; padding-left: 16px; padding-right: 0px; padding-top: 0px" class="list2"> <li style="padding-bottom: 2px; list-style-type: disc; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 2px"><a style="color: rgb(51,102,153); text-decoration: none" >memcached鐨勫垎甯冨紡鏄粈涔堟剰鎬濓紵</a></li> </ul> </li> <li style="padding-bottom: 2px; list-style-type: disc; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 2px"><a style="color: rgb(51,102,153); text-decoration: none" >Cache::Memcached鐨勫垎甯冨紡鏂規(guī)硶</a> <ul style="padding-bottom: 0px; list-style-type: none; margin: 5px 0px 5px 16px; padding-left: 16px; padding-right: 0px; padding-top: 0px" class="list2"> <li style="padding-bottom: 2px; list-style-type: disc; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 2px"><a style="color: rgb(51,102,153); text-decoration: none" >鏍規(guī)嵁浣欐暟璁$畻鍒嗘暎</a></li> <li style="padding-bottom: 2px; list-style-type: disc; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 2px"><a style="color: rgb(51,102,153); text-decoration: none" >鏍規(guī)嵁浣欐暟璁$畻鍒嗘暎鐨勭己鐐?/a></li> </ul> </li> <li style="padding-bottom: 2px; list-style-type: disc; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 2px"><a style="color: rgb(51,102,153); text-decoration: none" >Consistent Hashing</a> <ul style="padding-bottom: 0px; list-style-type: none; margin: 5px 0px 5px 16px; padding-left: 16px; padding-right: 0px; padding-top: 0px" class="list2"> <li style="padding-bottom: 2px; list-style-type: disc; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 2px"><a style="color: rgb(51,102,153); text-decoration: none" >Consistent Hashing鐨勭畝鍗曡鏄?/a></li> <li style="padding-bottom: 2px; list-style-type: disc; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 2px"><a style="color: rgb(51,102,153); text-decoration: none" >鏀寔Consistent Hashing鐨勫嚱鏁板簱</a></li> </ul> </li> <li style="padding-bottom: 2px; list-style-type: disc; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 2px"><a style="color: rgb(51,102,153); text-decoration: none" >鎬葷粨</a></li> </ul> <h2 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">memcached鐨勫垎甯冨紡</h2> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">姝e絎?嬈′腑浠嬬粛鐨勯偅鏍鳳紝 memcached铏界劧縐頒負(fù)“鍒嗗竷寮?#8221;緙撳瓨鏈嶅姟鍣紝浣嗘湇鍔″櫒绔茍娌℃湁“鍒嗗竷寮?#8221;鍔熻兘銆?鏈嶅姟鍣ㄧ浠呭寘鎷?絎?嬈°?絎?嬈?鍓嶅潅浠嬬粛鐨勫唴瀛樺瓨鍌ㄥ姛鑳斤紝鍏跺疄鐜伴潪甯哥畝鍗曘?鑷充簬memcached鐨勫垎甯冨紡錛屽垯鏄畬鍏ㄧ敱瀹㈡埛绔▼搴忓簱瀹炵幇鐨勩?榪欑鍒嗗竷寮忔槸memcached鐨勬渶澶х壒鐐廣?/p> <h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">memcached鐨勫垎甯冨紡鏄粈涔堟剰鎬濓紵</h3> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">榪欓噷澶氭浣跨敤浜?#8220;鍒嗗竷寮?#8221;榪欎釜璇嶏紝浣嗗茍鏈仛璇︾粏瑙i噴銆?鐜板湪寮濮嬬畝鍗曞湴浠嬬粛涓涓嬪叾鍘熺悊錛屽悇涓鎴風(fēng)鐨勫疄鐜板熀鏈浉鍚屻?/p> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">涓嬮潰鍋囪memcached鏈嶅姟鍣ㄦ湁node1锝瀗ode3涓夊彴錛?搴旂敤紼嬪簭瑕佷繚瀛橀敭鍚嶄負(fù)“tokyo”“kanagawa”“chiba”“saitama”“gunma” 鐨勬暟鎹?/p> <p style="text-align: left; padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px" class="img_margin"><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="memcached-0004-01.png" alt="memcached-0004-01.png" src="http://tech.idv2.com/wp-content/uploads/2008/07/memcached-0004-01.png" width="441" height="405" /></p> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">鍥? 鍒嗗竷寮忕畝浠嬶細(xì)鍑嗗</p> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">棣栧厛鍚憁emcached涓坊鍔?#8220;tokyo”銆傚皢“tokyo”浼犵粰瀹㈡埛绔▼搴忓簱鍚庯紝 瀹㈡埛绔疄鐜扮殑綆楁硶灝變細(xì)鏍規(guī)嵁“閿?#8221;鏉ュ喅瀹氫繚瀛樻暟鎹殑memcached鏈嶅姟鍣ㄣ?鏈嶅姟鍣ㄩ夊畾鍚庯紝鍗沖懡浠ゅ畠淇濆瓨“tokyo”鍙?qiáng)鍏跺箋?/p> <p style="text-align: left; padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px" class="img_margin"><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="memcached-0004-02.png" alt="memcached-0004-02.png" src="http://tech.idv2.com/wp-content/uploads/2008/07/memcached-0004-02.png" width="445" height="454" /></p> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">鍥? 鍒嗗竷寮忕畝浠嬶細(xì)娣誨姞鏃?/p> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">鍚屾牱錛?#8220;kanagawa”“chiba”“saitama”“gunma”閮芥槸鍏堥夋嫨鏈嶅姟鍣ㄥ啀淇濆瓨銆?/p> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">鎺ヤ笅鏉ヨ幏鍙栦繚瀛樼殑鏁版嵁銆傝幏鍙栨椂涔熻灝嗚鑾峰彇鐨勯敭“tokyo”浼犻掔粰鍑芥暟搴撱?鍑芥暟搴撻氳繃涓庢暟鎹繚瀛樻椂鐩稿悓鐨勭畻娉曪紝鏍規(guī)嵁“閿?#8221;閫夋嫨鏈嶅姟鍣ㄣ?浣跨敤鐨勭畻娉曠浉鍚岋紝灝辮兘閫変腑涓庝繚瀛樻椂鐩稿悓鐨勬湇鍔″櫒錛岀劧鍚庡彂閫乬et鍛戒護(hù)銆?鍙鏁版嵁娌℃湁鍥犱負(fù)鏌愪簺鍘熷洜琚垹闄わ紝灝辮兘鑾峰緱淇濆瓨鐨勫箋?/p> <p style="text-align: left; padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px" class="img_margin"><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="memcached-0004-03.png" alt="memcached-0004-03.png" src="http://tech.idv2.com/wp-content/uploads/2008/07/memcached-0004-03.png" width="449" height="457" /></p> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">鍥? 鍒嗗竷寮忕畝浠嬶細(xì)鑾峰彇鏃?/p> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">榪欐牱錛屽皢涓嶅悓鐨勯敭淇濆瓨鍒頒笉鍚岀殑鏈嶅姟鍣ㄤ笂錛屽氨瀹炵幇浜唌emcached鐨勫垎甯冨紡銆?memcached鏈嶅姟鍣ㄥ澶氬悗錛岄敭灝變細(xì)鍒嗘暎錛屽嵆浣夸竴鍙癿emcached鏈嶅姟鍣ㄥ彂鐢熸晠闅?鏃犳硶榪炴帴錛屼篃涓嶄細(xì)褰卞搷鍏朵粬鐨勭紦瀛橈紝緋葷粺渚濈劧鑳界戶緇繍琛屻?/p> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">鎺ヤ笅鏉ヤ粙緇?a style="color: rgb(51,102,153); text-decoration: none" >絎?嬈?/a><span id="a66kkee" class="Apple-converted-space"> </span>涓彁鍒扮殑Perl瀹㈡埛绔嚱鏁板簱Cache::Memcached瀹炵幇鐨勫垎甯冨紡鏂規(guī)硶銆?/p> <h2 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">Cache::Memcached鐨勫垎甯冨紡鏂規(guī)硶</h2> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">Perl鐨刴emcached瀹㈡埛绔嚱鏁板簱Cache::Memcached鏄?memcached鐨勪綔鑰匓rad Fitzpatrick鐨勪綔鍝侊紝鍙互璇存槸鍘熻鐨勫嚱鏁板簱浜嗐?/p> <ul style="padding-bottom: 0px; list-style-type: none; margin: 5px 0px 5px 16px; padding-left: 16px; padding-right: 0px; padding-top: 0px" class="list1"> <li style="padding-bottom: 2px; list-style-type: disc; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 2px"><a style="color: rgb(51,102,153); text-decoration: none" >Cache::Memcached - search.cpan.org</a></li> </ul> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">璇ュ嚱鏁板簱瀹炵幇浜嗗垎甯冨紡鍔熻兘錛屾槸memcached鏍囧噯鐨勫垎甯冨紡鏂規(guī)硶銆?/p> <h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">鏍規(guī)嵁浣欐暟璁$畻鍒嗘暎</h3> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">Cache::Memcached鐨勫垎甯冨紡鏂規(guī)硶綆鍗曟潵璇達(dá)紝灝辨槸“鏍規(guī)嵁鏈嶅姟鍣ㄥ彴鏁扮殑浣欐暟榪涜鍒嗘暎”銆?姹傚緱閿殑鏁存暟鍝堝笇鍊鹼紝鍐嶉櫎浠ユ湇鍔″櫒鍙版暟錛屾牴鎹叾浣欐暟鏉ラ夋嫨鏈嶅姟鍣ㄣ?/p> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">涓嬮潰灝咰ache::Memcached綆鍖栨垚浠ヤ笅鐨凱erl鑴氭湰鏉ヨ繘琛岃鏄庛?/p> <div id="e6kie4a" class="hl-surround"> <div id="isqmie6" class="hl-main"><span style="color: navy">use strict</span><span style="color: gray">;<br /> </span><span style="color: navy">use warnings</span><span style="color: gray">;<br /> </span><span style="color: navy">use String::CRC32</span><span style="color: gray">;<br /> <br /> </span><span style="color: green">my</span><span style="color: gray"><span id="64sumii" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">@nodes</span><span style="color: gray"><span id="a42m2qk" class="Apple-converted-space"> </span>=<span id="4aoiaqq" class="Apple-converted-space"> </span></span><span style="color: olive">(</span><span style="color: rgb(139,0,0)">'</span><span style="color: red">node1</span><span style="color: rgb(139,0,0)">'</span><span style="color: gray">,</span><span style="color: rgb(139,0,0)">'</span><span style="color: red">node2</span><span style="color: rgb(139,0,0)">'</span><span style="color: gray">,</span><span style="color: rgb(139,0,0)">'</span><span style="color: red">node3</span><span style="color: rgb(139,0,0)">'</span><span style="color: olive">)</span><span style="color: gray">;<br /> </span><span style="color: green">my</span><span style="color: gray"><span id="eyikusa" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">@keys</span><span style="color: gray"><span id="22w6gq2" class="Apple-converted-space"> </span>=<span id="kii46i6" class="Apple-converted-space"> </span></span><span style="color: olive">(</span><span style="color: rgb(139,0,0)">'</span><span style="color: red">tokyo</span><span style="color: rgb(139,0,0)">'</span><span style="color: gray">,<span id="gcoqs62" class="Apple-converted-space"> </span></span><span style="color: rgb(139,0,0)">'</span><span style="color: red">kanagawa</span><span style="color: rgb(139,0,0)">'</span><span style="color: gray">,<span id="sg26oek" class="Apple-converted-space"> </span></span><span style="color: rgb(139,0,0)">'</span><span style="color: red">chiba</span><span style="color: rgb(139,0,0)">'</span><span style="color: gray">,<span id="ca2qmac" class="Apple-converted-space"> </span></span><span style="color: rgb(139,0,0)">'</span><span style="color: red">saitama</span><span style="color: rgb(139,0,0)">'</span><span style="color: gray">,<span id="oo6226k" class="Apple-converted-space"> </span></span><span style="color: rgb(139,0,0)">'</span><span style="color: red">gunma</span><span style="color: rgb(139,0,0)">'</span><span style="color: olive">)</span><span style="color: gray">;<br /> <br /> </span><span style="color: green">foreach</span><span style="color: gray"><span id="22oe2s6" class="Apple-converted-space"> </span></span><span style="color: green">my</span><span style="color: gray"><span id="muogc46" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">$key</span><span style="color: gray"><span id="kicm22e" class="Apple-converted-space"> </span></span><span style="color: olive">(</span><span style="color: rgb(0,0,139)">@keys</span><span style="color: olive">)</span><span style="color: gray"><span id="c4ku6gw" class="Apple-converted-space"> </span></span><span style="color: olive">{</span><span style="color: gray"><br />   <span id="gm446m4" class="Apple-converted-space"> </span></span><span style="color: green">my</span><span style="color: gray"><span id="ws2yyiq" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">$crc</span><span style="color: gray"><span id="sg2e22o" class="Apple-converted-space"> </span>=<span id="uymwgqy" class="Apple-converted-space"> </span></span><span style="color: blue">crc32</span><span style="color: olive">(</span><span style="color: rgb(0,0,139)">$key</span><span style="color: olive">)</span><span style="color: gray">;<span id="4gs2a24" class="Apple-converted-space"> </span></span><span style="color: rgb(255,165,0)"># CRC鍊?/span><span style="color: gray"><br />   <span id="iyckymk" class="Apple-converted-space"> </span></span><span style="color: green">my</span><span style="color: gray"><span id="y2y2yeg" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">$mod</span><span style="color: gray"><span id="w6is42c" class="Apple-converted-space"> </span>=<span id="gmq2euk" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">$crc</span><span style="color: gray"><span id="2u6q2su" class="Apple-converted-space"> </span>%<span id="omm6uiy" class="Apple-converted-space"> </span></span><span style="color: olive">(</span><span style="color: gray"><span id="2cm64qi" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">$#nodes</span><span style="color: gray"><span id="iyaueoi" class="Apple-converted-space"> </span>+<span id="i2ism2g" class="Apple-converted-space"> </span></span><span style="color: maroon">1</span><span style="color: gray"><span id="g4w6226" class="Apple-converted-space"> </span></span><span style="color: olive">)</span><span style="color: gray">;<br />   <span id="2sewees" class="Apple-converted-space"> </span></span><span style="color: green">my</span><span style="color: gray"><span id="ksc2gwm" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">$server</span><span style="color: gray"><span id="ucm2mu6" class="Apple-converted-space"> </span>=<span id="wsuuowu" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">$nodes</span><span style="color: olive">[</span><span style="color: gray"><span id="6ga244c" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">$mod</span><span style="color: gray"><span id="awaac4u" class="Apple-converted-space"> </span></span><span style="color: olive">]</span><span style="color: gray">;<span id="ekwe2c6" class="Apple-converted-space"> </span></span><span style="color: rgb(255,165,0)"># 鏍規(guī)嵁浣欐暟閫夋嫨鏈嶅姟鍣?/span><span style="color: gray"><br />   <span id="42kuogm" class="Apple-converted-space"> </span></span><span style="color: green">printf</span><span style="color: gray"><span id="s4ius4u" class="Apple-converted-space"> </span></span><span style="color: rgb(139,0,0)">"</span><span style="color: red">%s =&gt; %s</span><span style="color: navy">\n</span><span style="color: rgb(139,0,0)">"</span><span style="color: gray">,<span id="m4wyyow" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">$key</span><span style="color: gray">,<span id="4eyoq6y" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">$server</span><span style="color: gray">;<br /> </span><span style="color: olive">}</span></div> </div> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">Cache::Memcached鍦ㄦ眰鍝堝笇鍊兼椂浣跨敤浜咰RC銆?/p> <ul style="padding-bottom: 0px; list-style-type: none; margin: 5px 0px 5px 16px; padding-left: 16px; padding-right: 0px; padding-top: 0px" class="list1"> <li style="padding-bottom: 2px; list-style-type: disc; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 2px"><a style="color: rgb(51,102,153); text-decoration: none" >String::CRC32 - search.cpan.org</a></li> </ul> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">棣栧厛姹傚緱瀛楃涓茬殑CRC鍊鹼紝鏍規(guī)嵁璇ュ奸櫎浠ユ湇鍔″櫒鑺傜偣鏁扮洰寰楀埌鐨勪綑鏁板喅瀹氭湇鍔″櫒銆?涓婇潰鐨勪唬鐮佹墽琛屽悗杈撳叆浠ヤ笅緇撴灉錛?/p> <pre>tokyo => node2<br /> kanagawa => node3<br /> chiba => node2<br /> saitama => node1<br /> gunma => node1</pre> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">鏍規(guī)嵁璇ョ粨鏋滐紝“tokyo”鍒嗘暎鍒皀ode2錛?#8220;kanagawa”鍒嗘暎鍒皀ode3絳夈?澶氳涓鍙ワ紝褰撻夋嫨鐨勬湇鍔″櫒鏃犳硶榪炴帴鏃訛紝Cache::Memcached浼?xì)灏啒q炴帴嬈℃暟 娣誨姞鍒伴敭涔嬪悗錛屽啀嬈¤綆楀搱甯屽煎茍灝濊瘯榪炴帴銆傝繖涓姩浣滅О涓簉ehash銆?涓嶅笇鏈況ehash鏃跺彲浠ュ湪鐢熸垚Cache::Memcached瀵硅薄鏃舵寚瀹?#8220;rehash => 0”閫夐」銆?/p> <h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">鏍規(guī)嵁浣欐暟璁$畻鍒嗘暎鐨勭己鐐?/h3> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">浣欐暟璁$畻鐨勬柟娉曠畝鍗曪紝鏁版嵁鐨勫垎鏁fт篃鐩稿綋浼樼錛屼絾涔熸湁鍏剁己鐐廣?閭e氨鏄綋娣誨姞鎴栫Щ闄ゆ湇鍔″櫒鏃訛紝緙撳瓨閲嶇粍鐨勪唬浠風(fēng)浉褰撳法澶с?娣誨姞鏈嶅姟鍣ㄥ悗錛屼綑鏁板氨浼?xì)漶旂敓宸ㄥ彉锛寴q欐牱灝辨棤娉曡幏鍙栦笌淇濆瓨鏃剁浉鍚岀殑鏈嶅姟鍣紝 浠庤屽獎(jiǎng)鍝嶇紦瀛樼殑鍛戒腑鐜囥傜敤Perl鍐欐浠g爜鏉ラ獙璇佸叾浠d環(huán)銆?/p> <div id="kqc6yww" class="hl-surround"> <div id="mc6o4eu" class="hl-main"><span style="color: navy">use strict</span><span style="color: gray">;<br /> </span><span style="color: navy">use warnings</span><span style="color: gray">;<br /> </span><span style="color: navy">use String::CRC32</span><span style="color: gray">;<br /> <br /> </span><span style="color: green">my</span><span style="color: gray"><span id="qog66k6" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">@nodes</span><span style="color: gray"><span id="4a6i6gy" class="Apple-converted-space"> </span>=<span id="gcc6k24" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">@ARGV</span><span style="color: gray">;<br /> </span><span style="color: green">my</span><span style="color: gray"><span id="6oi664o" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">@keys</span><span style="color: gray"><span id="uiu44w4" class="Apple-converted-space"> </span>=<span id="wg264q2" class="Apple-converted-space"> </span></span><span style="color: olive">(</span><span style="color: rgb(139,0,0)">'</span><span style="color: red">a</span><span style="color: rgb(139,0,0)">'</span><span style="color: gray">..</span><span style="color: rgb(139,0,0)">'</span><span style="color: red">z</span><span style="color: rgb(139,0,0)">'</span><span style="color: olive">)</span><span style="color: gray">;<br /> </span><span style="color: green">my</span><span style="color: gray"><span id="oqiu2w4" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">%nodes</span><span style="color: gray">;<br /> <br /> </span><span style="color: green">foreach</span><span style="color: gray"><span id="mqc4wwm" class="Apple-converted-space"> </span></span><span style="color: green">my</span><span style="color: gray"><span id="ymoakaq" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">$key</span><span style="color: gray"><span id="uy4s4c4" class="Apple-converted-space"> </span></span><span style="color: olive">(</span><span style="color: gray"><span id="2og6ayo" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">@keys</span><span style="color: gray"><span id="ky6e6c4" class="Apple-converted-space"> </span></span><span style="color: olive">)</span><span style="color: gray"><span id="gm642qq" class="Apple-converted-space"> </span></span><span style="color: olive">{</span><span style="color: gray"><br />   <span id="6qaceuc" class="Apple-converted-space"> </span></span><span style="color: green">my</span><span style="color: gray"><span id="aewaeka" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">$hash</span><span style="color: gray"><span id="6ceoyo4" class="Apple-converted-space"> </span>=<span id="w66iw6o" class="Apple-converted-space"> </span></span><span style="color: blue">crc32</span><span style="color: olive">(</span><span style="color: rgb(0,0,139)">$key</span><span style="color: olive">)</span><span style="color: gray">;<br />   <span id="422ycs6" class="Apple-converted-space"> </span></span><span style="color: green">my</span><span style="color: gray"><span id="u62ceoc" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">$mod</span><span style="color: gray"><span id="mo6gcs4" class="Apple-converted-space"> </span>=<span id="emw6624" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">$hash</span><span style="color: gray"><span id="ac2k2ai" class="Apple-converted-space"> </span>%<span id="mwyykii" class="Apple-converted-space"> </span></span><span style="color: olive">(</span><span style="color: gray"><span id="2642g24" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">$#nodes</span><span style="color: gray"><span id="62ya2yq" class="Apple-converted-space"> </span>+<span id="gue6gok" class="Apple-converted-space"> </span></span><span style="color: maroon">1</span><span style="color: gray"><span id="4gk2gki" class="Apple-converted-space"> </span></span><span style="color: olive">)</span><span style="color: gray">;<br />   <span id="w4oqasa" class="Apple-converted-space"> </span></span><span style="color: green">my</span><span style="color: gray"><span id="wc2qca4" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">$server</span><span style="color: gray"><span id="cc42oea" class="Apple-converted-space"> </span>=<span id="ioammew" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">$nodes</span><span style="color: olive">[</span><span style="color: gray"><span id="66c6sa6" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">$mod</span><span style="color: gray"><span id="m4kke4o" class="Apple-converted-space"> </span></span><span style="color: olive">]</span><span style="color: gray">;<br />   <span id="u6iscci" class="Apple-converted-space"> </span></span><span style="color: green">push</span><span style="color: gray"><span id="soo4u24" class="Apple-converted-space"> </span>@</span><span style="color: olive">{</span><span style="color: gray"><span id="g2m6ago" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">$nodes</span><span style="color: olive">{</span><span style="color: gray"><span id="oc4a6y6" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">$server</span><span style="color: gray"><span id="ymoak4c" class="Apple-converted-space"> </span></span><span style="color: olive">}</span><span style="color: gray"><span id="ymwgqww" class="Apple-converted-space"> </span></span><span style="color: olive">}</span><span style="color: gray">,<span id="6ak2ggw" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">$key</span><span style="color: gray">;<br /> </span><span style="color: olive">}</span><span style="color: gray"><br /> <br /> </span><span style="color: green">foreach</span><span style="color: gray"><span id="ua4g2cm" class="Apple-converted-space"> </span></span><span style="color: green">my</span><span style="color: gray"><span id="k2gcu4m" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">$node</span><span style="color: gray"><span id="22o4wua" class="Apple-converted-space"> </span></span><span style="color: olive">(</span><span style="color: gray"><span id="a42waqg" class="Apple-converted-space"> </span></span><span style="color: green">sort</span><span style="color: gray"><span id="im2sw2u" class="Apple-converted-space"> </span></span><span style="color: green">keys</span><span style="color: gray"><span id="4gg6kgg" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">%nodes</span><span style="color: gray"><span id="u2s4goc" class="Apple-converted-space"> </span></span><span style="color: olive">)</span><span style="color: gray"><span id="a4o6ywk" class="Apple-converted-space"> </span></span><span style="color: olive">{</span><span style="color: gray"><br />   <span id="sw666k2" class="Apple-converted-space"> </span></span><span style="color: green">printf</span><span style="color: gray"><span id="kkk66w4" class="Apple-converted-space"> </span></span><span style="color: rgb(139,0,0)">"</span><span style="color: red">%s: %s</span><span style="color: navy">\n</span><span style="color: rgb(139,0,0)">"</span><span style="color: gray">,<span id="ms2wo22" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">$node</span><span style="color: gray">,<span id="qwg4oe6" class="Apple-converted-space"> </span></span><span style="color: green">join</span><span style="color: gray"><span id="22e442o" class="Apple-converted-space"> </span></span><span style="color: rgb(139,0,0)">"</span><span style="color: red">,</span><span style="color: rgb(139,0,0)">"</span><span style="color: gray">, @</span><span style="color: olive">{</span><span style="color: gray"><span id="iwyimcu" class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,139)">$nodes</span><span style="color: olive">{</span><span style="color: rgb(0,0,139)">$node</span><span style="color: olive">}</span><span style="color: gray"><span id="easog2m" class="Apple-converted-space"> </span></span><span style="color: olive">}</span><span style="color: gray">;<br /> </span><span style="color: olive">}</span></div> </div> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">榪欐Perl鑴氭湰婕旂ず浜嗗皢“a”鍒?#8220;z”鐨勯敭淇濆瓨鍒癿emcached騫惰闂殑鎯呭喌銆?灝嗗叾淇濆瓨涓簃od.pl騫舵墽琛屻?/p> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">棣栧厛錛屽綋鏈嶅姟鍣ㄥ彧鏈変笁鍙版椂錛?/p> <div id="okcuwms" class="hl-surround"> <div id="so264q4" class="hl-main"><span style="color: gray">$<span id="a2waaiy" class="Apple-converted-space"> </span></span><span style="color: blue">mod</span><span style="color: gray">.</span><span style="color: blue">pl</span><span style="color: gray"><span id="64u62q6" class="Apple-converted-space"> </span></span><span style="color: blue">node1</span><span style="color: gray"><span id="c2w6usi" class="Apple-converted-space"> </span></span><span style="color: blue">node2</span><span style="color: gray"><span id="kyykk26" class="Apple-converted-space"> </span></span><span style="color: blue">nod3</span><span style="color: gray"><br /> </span><span style="color: blue">node1</span><span style="color: gray">:<span id="e662w46" class="Apple-converted-space"> </span></span><span style="color: blue">a</span><span style="color: gray">,</span><span style="color: blue">c</span><span style="color: gray">,</span><span style="color: blue">d</span><span style="color: gray">,</span><span style="color: blue">e</span><span style="color: gray">,</span><span style="color: blue">h</span><span style="color: gray">,</span><span style="color: blue">j</span><span style="color: gray">,</span><span style="color: blue">n</span><span style="color: gray">,</span><span style="color: blue">u</span><span style="color: gray">,</span><span style="color: blue">w</span><span style="color: gray">,</span><span style="color: blue">x</span><span style="color: gray"><br /> </span><span style="color: blue">node2</span><span style="color: gray">:<span id="wu2wayy" class="Apple-converted-space"> </span></span><span style="color: blue">g</span><span style="color: gray">,</span><span style="color: blue">i</span><span style="color: gray">,</span><span style="color: blue">k</span><span style="color: gray">,</span><span style="color: blue">l</span><span style="color: gray">,</span><span style="color: blue">p</span><span style="color: gray">,</span><span style="color: blue">r</span><span style="color: gray">,</span><span style="color: blue">s</span><span style="color: gray">,</span><span style="color: green">y</span><span style="color: gray"><br /> </span><span style="color: blue">node3</span><span style="color: gray">:<span id="2yggsq2" class="Apple-converted-space"> </span></span><span style="color: blue">b</span><span style="color: gray">,</span><span style="color: blue">f</span><span style="color: gray">,</span><span style="color: blue">m</span><span style="color: gray">,</span><span style="color: blue">o</span><span style="color: gray">,</span><span style="color: rgb(139,0,0)">q,</span><span style="color: red">t</span><span style="color: rgb(139,0,0)">,</span><span style="color: blue">v</span><span style="color: gray">,</span><span style="color: blue">z</span></div> </div> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">緇撴灉濡備笂錛宯ode1淇濆瓨a銆乧銆乨銆乪……錛宯ode2淇濆瓨g銆乮銆乲……錛?姣忓彴鏈嶅姟鍣ㄩ兘淇濆瓨浜?涓埌10涓暟鎹?/p> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">鎺ヤ笅鏉ュ鍔犱竴鍙癿emcached鏈嶅姟鍣ㄣ?/p> <div id="22uiiy6" class="hl-surround"> <div id="sgqi44k" class="hl-main"><span style="color: gray">$<span id="gmum22w" class="Apple-converted-space"> </span></span><span style="color: blue">mod</span><span style="color: gray">.</span><span style="color: blue">pl</span><span style="color: gray"><span id="u66qswm" class="Apple-converted-space"> </span></span><span style="color: blue">node1</span><span style="color: gray"><span id="se6cwm2" class="Apple-converted-space"> </span></span><span style="color: blue">node2</span><span style="color: gray"><span id="sya6yyw" class="Apple-converted-space"> </span></span><span style="color: blue">node3</span><span style="color: gray"><span id="6mwmowg" class="Apple-converted-space"> </span></span><span style="color: blue">node4</span><span style="color: gray"><br /> </span><span style="color: blue">node1</span><span style="color: gray">:<span id="o6m24is" class="Apple-converted-space"> </span></span><span style="color: blue">d</span><span style="color: gray">,</span><span style="color: blue">f</span><span style="color: gray">,</span><span style="color: blue">m</span><span style="color: gray">,</span><span style="color: blue">o</span><span style="color: gray">,</span><span style="color: blue">t</span><span style="color: gray">,</span><span style="color: blue">v</span><span style="color: gray"><br /> </span><span style="color: blue">node2</span><span style="color: gray">:<span id="ouwe6su" class="Apple-converted-space"> </span></span><span style="color: blue">b</span><span style="color: gray">,</span><span style="color: blue">i</span><span style="color: gray">,</span><span style="color: blue">k</span><span style="color: gray">,</span><span style="color: blue">p</span><span style="color: gray">,</span><span style="color: blue">r</span><span style="color: gray">,</span><span style="color: green">y</span><span style="color: gray"><br /> </span><span style="color: blue">node3</span><span style="color: gray">:<span id="kmwg62g" class="Apple-converted-space"> </span></span><span style="color: blue">e</span><span style="color: gray">,</span><span style="color: blue">g</span><span style="color: gray">,</span><span style="color: blue">l</span><span style="color: gray">,</span><span style="color: blue">n</span><span style="color: gray">,</span><span style="color: blue">u</span><span style="color: gray">,</span><span style="color: blue">w</span><span style="color: gray"><br /> </span><span style="color: blue">node4</span><span style="color: gray">:<span id="2uwwimm" class="Apple-converted-space"> </span></span><span style="color: blue">a</span><span style="color: gray">,</span><span style="color: blue">c</span><span style="color: gray">,</span><span style="color: blue">h</span><span style="color: gray">,</span><span style="color: blue">j</span><span style="color: gray">,</span><span style="color: rgb(139,0,0)">q,</span><span style="color: red">s</span><span style="color: rgb(139,0,0)">,</span><span style="color: blue">x</span><span style="color: gray">,</span><span style="color: blue">z</span></div> </div> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">娣誨姞浜唍ode4銆傚彲瑙侊紝鍙湁d銆乮銆乲銆乸銆乺銆亂鍛戒腑浜嗐傚儚榪欐牱錛屾坊鍔犺妭鐐瑰悗 閿垎鏁e埌鐨勬湇鍔″櫒浼?xì)鍙戠敓宸ㄥぇ鍙樺寲銆?6涓敭涓彧鏈夊叚涓湪璁塊棶鍘熸潵鐨勬湇鍔″櫒錛?鍏朵粬鐨勫叏閮界Щ鍒頒簡鍏朵粬鏈嶅姟鍣ㄣ傚懡涓巼闄嶄綆鍒?3%銆傚湪Web搴旂敤紼嬪簭涓嬌鐢╩emcached鏃訛紝 鍦ㄦ坊鍔爉emcached鏈嶅姟鍣ㄧ殑鐬棿緙撳瓨鏁堢巼浼?xì)澶q呭害涓嬮檷錛岃礋杞戒細(xì)闆嗕腑鍒版暟鎹簱鏈嶅姟鍣ㄤ笂錛?鏈夊彲鑳戒細(xì)鍙戠敓鏃犳硶鎻愪緵姝e父鏈嶅姟鐨勬儏鍐點(diǎn)?/p> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">mixi鐨刉eb搴旂敤紼嬪簭榪愮敤涓篃鏈夎繖涓棶棰橈紝瀵艱嚧鏃犳硶娣誨姞memcached鏈嶅姟鍣ㄣ?浣嗙敱浜庝嬌鐢ㄤ簡鏂扮殑鍒嗗竷寮忔柟娉曪紝鐜板湪鍙互杞昏屾槗涓懼湴娣誨姞memcached鏈嶅姟鍣ㄤ簡銆?榪欑鍒嗗竷寮忔柟娉曠О涓?Consistent Hashing銆?/p> <h2 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">Consistent Hashing</h2> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">鍏充簬Consistent Hashing鐨勬濇兂錛宮ixi鏍紡浼?xì)绀剧殑寮鍙慴log絳夎澶氬湴鏂歸兘浠嬬粛榪囷紝 榪欓噷鍙畝鍗曞湴璇存槑涓涓嬨?/p> <ul style="padding-bottom: 0px; list-style-type: none; margin: 5px 0px 5px 16px; padding-left: 16px; padding-right: 0px; padding-top: 0px" class="list1"> <li style="padding-bottom: 2px; list-style-type: disc; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 2px"><a style="color: rgb(51,102,153); text-decoration: none" >mixi Engineers’ Blog - 銈廣優(yōu)銉箋儓銇垎鏁c仹蹇仼銈儯銉冦偡銉ャ儵銈ゃ儠</a></li> <li style="padding-bottom: 2px; list-style-type: disc; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 2px"><a style="color: rgb(51,102,153); text-decoration: none" >ConsistentHashing - 銈熾兂銈楓偣銉嗐兂銉?銉忋儍銈楓儱娉?/a></li> </ul> <h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">Consistent Hashing鐨勭畝鍗曡鏄?/h3> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">Consistent Hashing濡備笅鎵紺猴細(xì)棣栧厛姹傚嚭memcached鏈嶅姟鍣紙鑺傜偣錛夌殑鍝堝笇鍊鹼紝 騫跺皢鍏墮厤緗埌0锝?<sup>32</sup>鐨勫渾錛坈ontinuum錛変笂銆?鐒跺悗鐢ㄥ悓鏍風(fēng)殑鏂規(guī)硶姹傚嚭瀛樺偍鏁版嵁鐨勯敭鐨勫搱甯屽鹼紝騫舵槧灝勫埌鍦嗕笂銆?鐒跺悗浠庢暟鎹槧灝勫埌鐨勪綅緗紑濮嬮『鏃墮拡鏌ユ壘錛屽皢鏁版嵁淇濆瓨鍒版壘鍒扮殑絎竴涓湇鍔″櫒涓娿?濡傛灉瓚呰繃2<sup>32</sup>浠嶇劧鎵句笉鍒版湇鍔″櫒錛屽氨浼?xì)淇濆瓨鍒敖W竴鍙癿emcached鏈嶅姟鍣ㄤ笂銆?/p> <p style="text-align: left; padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px" class="img_margin"><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="memcached-0004-04.png" alt="memcached-0004-04.png" src="http://tech.idv2.com/wp-content/uploads/2008/07/memcached-0004-04.png" width="521" height="409" /></p> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">鍥? Consistent Hashing錛氬熀鏈師鐞?/p> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">浠庝笂鍥劇殑鐘舵佷腑娣誨姞涓鍙癿emcached鏈嶅姟鍣ㄣ備綑鏁板垎甯冨紡綆楁硶鐢變簬淇濆瓨閿殑鏈嶅姟鍣ㄤ細(xì)鍙戠敓宸ㄥぇ鍙樺寲 鑰屽獎(jiǎng)鍝嶇紦瀛樼殑鍛戒腑鐜囷紝浣咰onsistent Hashing涓紝鍙湁鍦╟ontinuum涓婂鍔犳湇鍔″櫒鐨勫湴鐐歸嗘椂閽堟柟鍚戠殑 絎竴鍙版湇鍔″櫒涓婄殑閿細(xì)鍙楀埌褰卞搷銆?/p> <p style="text-align: left; padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px" class="img_margin"><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="memcached-0004-05.png" alt="memcached-0004-05.png" src="http://tech.idv2.com/wp-content/uploads/2008/07/memcached-0004-05.png" width="518" height="439" /></p> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">鍥? Consistent Hashing錛氭坊鍔犳湇鍔″櫒</p> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">鍥犳錛孋onsistent Hashing鏈澶ч檺搴﹀湴鎶戝埗浜嗛敭鐨勯噸鏂板垎甯冦?鑰屼笖錛屾湁鐨凜onsistent Hashing鐨勫疄鐜版柟娉曡繕閲囩敤浜嗚櫄鎷熻妭鐐圭殑鎬濇兂銆?浣跨敤涓鑸殑hash鍑芥暟鐨勮瘽錛屾湇鍔″櫒鐨勬槧灝勫湴鐐圭殑鍒嗗竷闈炲父涓嶅潎鍖銆?鍥犳錛屼嬌鐢ㄨ櫄鎷熻妭鐐圭殑鎬濇兂錛屼負(fù)姣忎釜鐗╃悊鑺傜偣錛堟湇鍔″櫒錛?鍦╟ontinuum涓婂垎閰?00锝?00涓偣銆傝繖鏍峰氨鑳芥姂鍒跺垎甯冧笉鍧囧寑錛?鏈澶ч檺搴﹀湴鍑忓皬鏈嶅姟鍣ㄥ鍑忔椂鐨勭紦瀛橀噸鏂板垎甯冦?/p> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">閫氳繃涓嬫枃涓粙緇嶇殑浣跨敤Consistent Hashing綆楁硶鐨刴emcached瀹㈡埛绔嚱鏁板簱榪涜嫻嬭瘯鐨勭粨鏋滄槸錛?鐢辨湇鍔″櫒鍙版暟錛坣錛夊拰澧炲姞鐨勬湇鍔″櫒鍙版暟錛坢錛夎綆楀鍔犳湇鍔″櫒鍚庣殑鍛戒腑鐜囪綆楀叕寮忓涓嬶細(xì)</p> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">(1 - n/(n+m)) * 100</p> <h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">鏀寔Consistent Hashing鐨勫嚱鏁板簱</h3> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">鏈繛杞戒腑澶氭浠嬬粛鐨凜ache::Memcached铏界劧涓嶆敮鎸丆onsistent Hashing錛?浣嗗凡鏈夊嚑涓鎴風(fēng)鍑芥暟搴撴敮鎸佷簡榪欑鏂扮殑鍒嗗竷寮忕畻娉曘?絎竴涓敮鎸丆onsistent Hashing鍜岃櫄鎷熻妭鐐圭殑memcached瀹㈡埛绔嚱鏁板簱鏄?鍚嶄負(fù)libketama鐨凱HP搴擄紝鐢眑ast.fm寮鍙戙?/p> <ul style="padding-bottom: 0px; list-style-type: none; margin: 5px 0px 5px 16px; padding-left: 16px; padding-right: 0px; padding-top: 0px" class="list1"> <li style="padding-bottom: 2px; list-style-type: disc; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 2px"><a style="color: rgb(51,102,153); text-decoration: none" >libketama - a consistent hashing algo for memcache clients – RJ 銉栥儹銈?- Users at Last.fm</a></li> </ul> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">鑷充簬Perl瀹㈡埛绔紝榪炶澆鐨勭1嬈?涓粙緇嶈繃鐨凜ache::Memcached::Fast鍜孋ache::Memcached::libmemcached鏀寔 Consistent Hashing銆?/p> <ul style="padding-bottom: 0px; list-style-type: none; margin: 5px 0px 5px 16px; padding-left: 16px; padding-right: 0px; padding-top: 0px" class="list1"> <li style="padding-bottom: 2px; list-style-type: disc; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 2px"><a style="color: rgb(51,102,153); text-decoration: none" >Cache::Memcached::Fast - search.cpan.org</a></li> <li style="padding-bottom: 2px; list-style-type: disc; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 2px"><a style="color: rgb(51,102,153); text-decoration: none" >Cache::Memcached::libmemcached - search.cpan.org</a></li> </ul> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">涓よ呯殑鎺ュ彛閮戒笌Cache::Memcached鍑犱箮鐩稿悓錛屽鏋滄鍦ㄤ嬌鐢–ache::Memcached錛?閭d箞灝卞彲浠ユ柟渚垮湴鏇挎崲榪囨潵銆侰ache::Memcached::Fast閲嶆柊瀹炵幇浜唋ibketama錛?浣跨敤Consistent Hashing鍒涘緩瀵硅薄鏃跺彲浠ユ寚瀹歬etama_points閫夐」銆?/p> <pre>my $memcached = Cache::Memcached::Fast->new({<br /> servers => ["192.168.0.1:11211","192.168.0.2:11211"],<br /> ketama_points => 150<br /> });</pre> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">鍙﹀錛孋ache::Memcached::libmemcached 鏄竴涓嬌鐢ㄤ簡Brain Aker寮鍙戠殑C鍑芥暟搴搇ibmemcached鐨凱erl妯″潡銆?libmemcached鏈韓鏀寔鍑犵鍒嗗竷寮忕畻娉曪紝涔熸敮鎸丆onsistent Hashing錛?鍏禤erl緇戝畾涔熸敮鎸丆onsistent Hashing銆?/p> <ul style="padding-bottom: 0px; list-style-type: none; margin: 5px 0px 5px 16px; padding-left: 16px; padding-right: 0px; padding-top: 0px" class="list1"> <li style="padding-bottom: 2px; list-style-type: disc; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 2px"><a style="color: rgb(51,102,153); text-decoration: none" >Tangent Software: libmemcached</a></li> </ul> <h2 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">鎬葷粨</h2> <p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px">鏈浠嬬粛浜唌emcached鐨勫垎甯冨紡綆楁硶錛屼富瑕佹湁memcached鐨勫垎甯冨紡鏄敱瀹㈡埛绔嚱鏁板簱瀹炵幇錛?浠ュ強(qiáng)楂樻晥鐜囧湴鍒嗘暎鏁版嵁鐨凜onsistent Hashing綆楁硶銆備笅嬈″皢浠嬬粛mixi鍦╩emcached搴旂敤鏂歸潰鐨勪竴浜涚粡楠岋紝 鍜岀浉鍏崇殑鍏煎搴旂敤紼嬪簭銆?/p> </span></span> <img src ="http://www.tkk7.com/syniii/aggbug/340783.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/syniii/" target="_blank">鏉ㄧ綏緗?/a> 2010-12-15 13:35 <a href="http://www.tkk7.com/syniii/articles/340783.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://mp4888.com" target="_blank">国产亚洲精彩视频</a>| <a href="http://928288.com" target="_blank">久久狠狠高潮亚洲精品</a>| <a href="http://dsfv1.com" target="_blank">亚洲av无码一区二区三区四区 </a>| <a href="http://sczxzt.com" target="_blank">在线观看人成视频免费</a>| <a href="http://spvec.com" target="_blank">亚洲不卡1卡2卡三卡2021麻豆</a>| <a href="http://44168888.com" target="_blank">久久WWW免费人成一看片</a>| <a href="http://qimiaodh.com" target="_blank">久久亚洲精品成人av无码网站</a>| <a href="http://dehaichem.com" target="_blank">国产免费AV片在线观看</a>| <a href="http://6266tv.com" target="_blank">国产亚洲福利精品一区</a>| <a href="http://iguasheng.com" target="_blank">日韩精品在线免费观看</a>| <a href="http://laosanqq.com" target="_blank">亚洲人成网址在线观看 </a>| <a href="http://lkzrgy.com" target="_blank">亚洲国产精品无码第一区二区三区 </a>| <a href="http://www876444.com" target="_blank">中文字幕精品无码亚洲字</a>| <a href="http://56v6.com" target="_blank">韩日电影在线播放免费版</a>| <a href="http://vankiz.com" target="_blank">久久久久亚洲AV成人无码</a>| <a href="http://yuntao360.com" target="_blank">2021在线观看视频精品免费</a>| <a href="http://ghiearning.com" target="_blank">亚洲一区在线视频观看</a>| <a href="http://499k.com" target="_blank">国产精品久免费的黄网站</a>| <a href="http://998wc.com" target="_blank">一区视频免费观看</a>| <a href="http://51caox.com" target="_blank">亚洲人成电影在线天堂</a>| <a href="http://aplus178.com" target="_blank">免费a级毛片高清视频不卡</a>| <a href="http://hjndgb.com" target="_blank">国产亚洲视频在线观看</a>| <a href="http://tuopumao.com" target="_blank">亚洲中文字幕无码一区二区三区 </a>| <a href="http://wwwbi757.com" target="_blank">久久久久久亚洲精品成人</a>| <a href="http://5656ys.com" target="_blank">免费无码AV片在线观看软件</a>| <a href="http://dxj588.com" target="_blank">国产成人精品久久亚洲高清不卡</a>| <a href="http://www-282555.com" target="_blank">免费在线看片网站</a>| <a href="http://usagaa.com" target="_blank">久久午夜夜伦鲁鲁片免费无码</a>| <a href="http://831055.com" target="_blank">亚洲av无码电影网</a>| <a href="http://kyqp0022.com" target="_blank">亚洲最大av无码网址</a>| <a href="http://ahjmdd.com" target="_blank">91麻豆国产免费观看</a>| <a href="http://zjszbwzl.com" target="_blank">亚洲AV综合色区无码一二三区</a>| <a href="http://wwwfac37.com" target="_blank">国产亚洲老熟女视频</a>| <a href="http://fenglibin.com" target="_blank">最近中文字幕2019高清免费</a>| <a href="http://bjsunic.com" target="_blank">蜜臀亚洲AV无码精品国产午夜.</a>| <a href="http://qmoread.com" target="_blank">亚洲色成人网站WWW永久</a>| <a href="http://dajiaody.com" target="_blank">免费毛片a在线观看67194</a>| <a href="http://yiren2233.com" target="_blank">成年免费大片黄在线观看com</a>| <a href="http://zmtme.com" target="_blank">内射干少妇亚洲69XXX</a>| <a href="http://anhuish.com" target="_blank">国产真实伦在线视频免费观看</a>| <a href="http://gdfcjzx.com" target="_blank">老司机69精品成免费视频</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>