褰撴垜浠湁澶ч噺 Redis 鎴?Memcached 鐨勬椂鍊欙紝閫氬父鍙兘閫氳繃瀹㈡埛绔殑涓浜涙暟鎹垎閰嶇畻娉曪紙姣斿涓鑷存у搱甯岋級錛?/span>鏉ュ疄鐜伴泦緹ゅ瓨鍌ㄧ殑鐗規(guī)с?/span>铏界劧Redis 2.6鐗堟湰宸茬粡鍙戝竷Redis Cluster錛屼絾榪樹笉鏄緢鎴愮啛閫傜敤姝e紡鐢熶駭鐜銆?span style="color:#333333; font-family:Helvetica,Tahoma,Arial,sans-serif; font-size:14px; line-height:25.200000762939453px"> Redis 鐨?Cluster 鏂規(guī)榪樻病鏈夋寮忔帹鍑轟箣鍓嶏紝鎴戜滑閫氳繃 Proxy 鐨勬柟寮忔潵瀹炵幇闆嗙兢瀛樺偍銆?/span>
Twitter錛屼笘鐣屾渶澶х殑Redis闆嗙兢涔嬩竴閮ㄧ講鍦═witter鐢ㄤ簬涓虹敤鎴鋒彁渚涙椂闂磋醬鏁版嵁銆俆witter Open Source閮ㄩ棬鎻愪緵浜員wemproxy銆?/span>
Twemproxy,涔熷彨nutcraker銆傛槸涓涓猼wtter寮婧愮殑涓涓猺edis鍜宮emcache浠g悊鏈嶅姟鍣ㄣ?redis浣滀負涓涓珮鏁堢殑緙撳瓨鏈嶅姟鍣紝闈炲父鍏鋒湁搴旂敤浠峰箋備絾鏄綋浣跨敤姣旇緝澶氱殑鏃跺欙紝灝卞笇鏈涘彲浠ラ氳繃鏌愮鏂瑰紡 緇熶竴榪?/span>琛岀鐞嗐傞伩鍏嶆瘡涓簲鐢ㄦ瘡涓鎴風(fēng)綆$悊榪炴帴鐨勬澗鏁fс傚悓鏃跺湪涓瀹氱▼搴︿笂鍙樺緱鍙互鎺у埗銆?/p> Twemproxy鏄竴涓揩閫熺殑鍗曠嚎紼嬩唬鐞嗙▼搴忥紝鏀寔Memcached ASCII鍗忚鍜屾洿鏂扮殑Redis鍗忚錛?/span> 瀹冨叏閮ㄧ敤C鍐欐垚錛屼嬌鐢ˋpache 2.0 License鎺堟潈銆傞」鐩湪Linux涓婂彲浠ュ伐浣滐紝鑰屽湪OSX涓婃棤娉曠紪璇戯紝鍥犱負瀹冧緷璧栦簡epoll API. Twemproxy 閫氳繃寮曞叆涓涓唬鐞嗗眰錛屽彲浠ュ皢鍏跺悗绔殑澶氬彴 Redis 鎴?Memcached 瀹炰緥榪涜緇熶竴綆$悊涓庡垎閰嶏紝浣垮簲鐢ㄧ▼搴忓彧闇瑕佸湪 Twemproxy 涓婅繘琛屾搷浣滐紝鑰屼笉鐢ㄥ叧蹇冨悗闈㈠叿浣撴湁澶氬皯涓湡瀹炵殑 Redis 鎴?Memcached 瀛樺偍銆?/span> 2銆?/span>twemproxy鐗規(guī)э細 鏀寔澶辮觸鑺傜偣鑷姩鍒犻櫎 鏀寔璁劇疆HashTag 鍑忓皯涓巖edis鐨勭洿鎺ヨ繛鎺ユ暟 鑷姩鍒嗙墖鍒板悗绔涓猺edis瀹炰緥涓?/p> 閬垮厤鍗曠偣闂 鏀寔redis pipelining request 鏀寔璇鋒眰鐨勬祦寮忎笌鎵瑰鐞嗭紝闄嶄綆鏉ュ洖鐨勬秷鑰?/span> 鏀寔鐘舵佺洃鎺?/p> 楂樺悶鍚愰噺 鍙﹀鍙互淇敼redis鐨勬簮浠g爜錛屾娊鍙栧嚭redis涓殑鍓嶅崐閮ㄥ垎錛屼綔涓轟竴涓腑闂翠唬鐞嗗眰銆傛渶緇堥兘鏄氳繃linux涓嬬殑epoll 浜嬩歡鏈哄埗鎻愰珮騫跺彂鏁堢巼錛屽叾涓璶utcraker鏈韓涔熸槸浣跨敤epoll鐨勪簨浠舵満鍒躲傚茍涓斿湪鎬ц兘嫻嬭瘯涓婄殑琛ㄧ幇闈炲父鍑鴻壊銆?/p>
3銆乼wemproxy闂涓庝笉瓚?/span>
4銆佸畨瑁呬笌閰嶇疆
apt-get install libtool
git clone git://github.com/twitter/twemproxy.git
cd twemproxy
autoreconf -fvi
./configure --enable-debug=log
make
src/nutcracker -h
listen: 127.0.0.1:6379 #浣跨敤鍝釜绔彛鍚姩Twemproxy
redis: true #鏄惁鏄疪edis鐨刾roxy
hash: fnv1a_64 #鎸囧畾鍏蜂綋鐨刪ash鍑芥暟
distribution: ketama #鍏蜂綋鐨刪ash綆楁硶
auto_eject_hosts: true #鏄惁鍦ㄧ粨鐐規(guī)棤娉曞搷搴旂殑鏃跺欎復(fù)鏃舵憳闄ょ粨鐐?
timeout: 400 #瓚呮椂鏃墮棿錛堟縐掞級
server_retry_timeout: 2000 #閲嶈瘯鐨勬椂闂達紙姣錛?
server_failure_limit: 1 #緇撶偣鏁呴殰澶氬皯嬈″氨綆楁憳闄ゆ帀
servers: #涓嬮潰琛ㄧず鎵鏈夌殑Redis鑺傜偣錛圛P:绔彛鍙?鏉冮噸錛?
- 127.0.0.1:6380:1
- 127.0.0.1:6381:1
- 127.0.0.1:6382:1
redis2:
listen: 0.0.0.0:10000
redis: true
hash: fnv1a_64
distribution: ketama
auto_eject_hosts: false
timeout: 400
servers:
- 127.0.0.1:6379:1
- 127.0.0.1:6380:1
- 127.0.0.1:6381:1
- 127.0.0.1:6382:1
浣犲彲浠ュ悓鏃跺紑鍚涓?Twemproxy 瀹炰緥錛屽畠浠兘鍙互榪涜璇誨啓錛岃繖鏍蜂綘鐨勫簲鐢ㄧ▼搴忓氨鍙互瀹屽叏閬垮厤鎵璋撶殑鍗曠偣鏁呴殰銆?
]]>