Redis闆嗙兢閮芥湁鍝簺妯″紡
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis闆嗙兢閮芥湁鍝簺妯″紡相关的知识,希望对你有一定的参考价值。
鏍囩锛?a href='http://www.mamicode.com/so/1/%e5%b8%a6%e6%9d%a5' title='甯︽潵'>甯︽潵 second 鐜拌薄 闆嗙兢 鍒嗘暟 art 閰嶇疆鏂囦欢 鍒ゆ柇 鎵撹祻
鍓嶈█:
涓€锛屼负浠€涔堣浣跨敤redis
1锛岃В鍐冲簲鐢ㄦ湇鍔″櫒鐨刢pu鍜屽唴瀛樺帇鍔?/p>
2锛屽噺灏慽o鐨勮鎿嶄綔锛屽噺杞籭o鐨勫帇鍔?/p>
3锛屽叧绯诲瀷鏁版嵁搴撴墿灞曟€т笉寮猴紝闅句互鏀瑰彉琛ㄧ殑缁撴瀯
浜岋紝浼樼偣
1,nosql鏁版嵁搴撴病鏈夊叧鑱斿叧绯伙紝鏁版嵁缁撴瀯绠€鍗曪紝鎵╁睍瀹规槗
2锛屾暟鎹鍐欏揩锛岃兘澶熸瘡绉掕儨浠诲嚑鍗佷竾鐨勫苟鍙戯紝澶勭悊閫熷害蹇?/p>
涓夛紝浣跨敤鍦烘櫙
1锛屾暟鎹珮骞跺彂璇诲啓
2锛屾捣閲忔暟鎹鍐?/p>
3锛屽涓嶈鍒欐暟鎹篃灏辨槸鎵╁睍鎬ц姹傞珮鐨勬暟鎹?/p>
鍥涳紝涓嶉€傚悎鍦烘櫙
1锛岄渶瑕佷簨鍔℃敮鎸侊紝铏界劧瀹冧篃鏈変簨鍔′絾鏄病鏈夊叧绯诲瀷鏁版嵁搴撶殑閭d箞鎴愮啛鍚?/p>
2锛屽熀浜巗ql杩涜鎿嶄綔
濂戒簡鎵繙浜嗭紝鐜板湪鏉ヨ璁插畠鐨勯泦缇ゆā寮忎簡
1锛屼富浠庡鍒?/h3>
2锛屽摠鍏垫ā寮?/h3>
3锛孯edis瀹樻柟鎻愪緵鐨凜luster闆嗙兢妯″紡(鏈嶅姟绔?
4锛孞edis sharding闆嗙兢(瀹㈡埛绔痵harding)
5,鍒╃敤涓棿浠朵唬鐞嗭紝姣斿璞岃眴鑽氱殑codis绛?/h3>
3锛孯edis瀹樻柟鎻愪緵鐨凜luster闆嗙兢妯″紡(鏈嶅姟绔?
4锛孞edis sharding闆嗙兢(瀹㈡埛绔痵harding)
5,鍒╃敤涓棿浠朵唬鐞嗭紝姣斿璞岃眴鑽氱殑codis绛?/h3>
濂戒簡浠嬬粛瀹屼簡浠栦滑鐨勬ā寮忥紝鐜板湪鏉ュ垎鏋愪竴涓嬩粬浠殑浼樼己鐐癸紝杩樻湁鍘熺悊鍚?/p>
涓讳粠澶嶅埗锛圡aster-Slave Replication锛?
瀹炵幇涓讳粠澶嶅埗锛圡aster-Slave Replication锛夌殑宸ヤ綔鍘熺悊锛歋lave浠庤妭鐐规湇鍔″惎鍔ㄥ苟杩炴帴鍒癕aster涔嬪悗锛屽畠灏嗕富鍔ㄥ彂閫佷竴涓猄YNC鍛戒护銆侻aster鏈嶅姟涓昏妭鐐规敹鍒板悓姝ュ懡浠ゅ悗灏嗗惎鍔ㄥ悗鍙板瓨鐩樿繘绋嬶紝鍚屾椂鏀堕泦鎵€鏈夋帴鏀跺埌鐨勭敤浜庝慨鏀规暟鎹泦鐨勫懡浠わ紝鍦ㄥ悗鍙拌繘绋嬫墽琛屽畬姣曞悗锛孧aster灏嗕紶閫佹暣涓暟鎹簱鏂囦欢鍒癝lave锛屼互瀹屾垚涓€娆″畬鍏ㄥ悓姝ャ€傝€孲lave浠庤妭鐐规湇鍔″湪鎺ユ敹鍒版暟鎹簱鏂囦欢鏁版嵁涔嬪悗灏嗗叾瀛樼洏骞跺姞杞藉埌鍐呭瓨涓€傛鍚庯紝Master涓昏妭鐐圭户缁皢鎵€鏈夊凡缁忔敹闆嗗埌鐨勪慨鏀瑰懡浠わ紝鍜屾柊鐨勪慨鏀瑰懡浠や緷娆′紶閫佺粰Slaves锛孲lave灏嗗湪鏈鎵ц杩欎簺鏁版嵁淇敼鍛戒护锛屼粠鑰岃揪鍒版渶缁堢殑鏁版嵁鍚屾銆?/p>
濡傛灉Master鍜孲lave涔嬮棿鐨勯摼鎺ュ嚭鐜版柇杩炵幇璞★紝Slave鍙互鑷姩閲嶈繛Master锛屼絾鏄湪杩炴帴鎴愬姛涔嬪悗锛屼竴娆″畬鍏ㄥ悓姝ュ皢琚嚜鍔ㄦ墽琛屻€?/p>
涓讳粠澶嶅埗閰嶇疆
- 淇敼浠庤妭鐐圭殑閰嶇疆鏂囦欢锛歴laveof masterip masterport
- 濡傛灉璁剧疆浜嗗瘑鐮侊紝灏辫璁剧疆锛歮asterauth master-password
涓讳粠妯″紡鐨勪紭缂虹偣
浼樼偣锛?/p>
- 鍚屼竴涓狹aster鍙互鍚屾澶氫釜Slaves銆?/li>
- Slave鍚屾牱鍙互鎺ュ彈鍏跺畠Slaves鐨勮繛鎺ュ拰鍚屾璇锋眰锛岃繖鏍峰彲浠ユ湁鏁堢殑鍒嗚浇Master鐨勫悓姝ュ帇鍔涖€傚洜姝ゆ垜浠彲浠ュ皢Redis鐨凴eplication鏋舵瀯瑙嗕负鍥剧粨鏋勩€?/li>
- Master Server鏄互闈為樆濉炵殑鏂瑰紡涓篠laves鎻愪緵鏈嶅姟銆傛墍浠ュ湪Master-Slave鍚屾鏈熼棿锛屽鎴风浠嶇劧鍙互鎻愪氦鏌ヨ鎴栦慨鏀硅姹傘€?/li>
- Slave Server鍚屾牱鏄互闈為樆濉炵殑鏂瑰紡瀹屾垚鏁版嵁鍚屾銆傚湪鍚屾鏈熼棿锛屽鏋滄湁瀹㈡埛绔彁浜ゆ煡璇㈣姹傦紝Redis鍒欒繑鍥炲悓姝ヤ箣鍓嶇殑鏁版嵁
- 涓轰簡鍒嗚浇Master鐨勮鎿嶄綔鍘嬪姏锛孲lave鏈嶅姟鍣ㄥ彲浠ヤ负瀹㈡埛绔彁渚涘彧璇绘搷浣滅殑鏈嶅姟锛屽啓鏈嶅姟浠嶇劧蹇呴』鐢盡aster鏉ュ畬鎴愩€傚嵆渚垮姝わ紝绯荤粺鐨勪几缂╂€ц繕鏄緱鍒颁簡寰堝ぇ鐨勬彁楂樸€?/li>
- Master鍙互灏嗘暟鎹繚瀛樻搷浣滀氦缁橲laves瀹屾垚锛屼粠鑰岄伩鍏嶄簡鍦∕aster涓鏈夌嫭绔嬬殑杩涚▼鏉ュ畬鎴愭鎿嶄綔銆?/li>
- 鏀寔涓讳粠澶嶅埗锛屼富鏈轰細鑷姩灏嗘暟鎹悓姝ュ埌浠庢満锛屽彲浠ヨ繘琛岃鍐欏垎绂汇€?/li>
缂虹偣锛?/p>
- Redis涓嶅叿澶囪嚜鍔ㄥ閿欏拰鎭㈠鍔熻兘锛屼富鏈轰粠鏈虹殑瀹曟満閮戒細瀵艰嚧鍓嶇閮ㄥ垎璇诲啓璇锋眰澶辫触锛岄渶瑕佺瓑寰呮満鍣ㄩ噸鍚垨鑰呮墜鍔ㄥ垏鎹㈠墠绔殑IP鎵嶈兘鎭㈠銆?/li>
- 涓绘満瀹曟満锛屽畷鏈哄墠鏈夐儴鍒嗘暟鎹湭鑳藉強鏃跺悓姝ュ埌浠庢満锛屽垏鎹P鍚庤繕浼氬紩鍏ユ暟鎹笉涓€鑷寸殑闂锛岄檷浣庝簡绯荤粺鐨勫彲鐢ㄦ€с€?/li>
- Redis鐨勪富浠庡鍒堕噰鐢ㄥ叏閲忓鍒讹紝澶嶅埗杩囩▼涓富鏈轰細fork鍑轰竴涓瓙杩涚▼瀵瑰唴瀛樺仛涓€浠藉揩鐓э紝骞跺皢瀛愯繘绋嬬殑鍐呭瓨蹇収淇濆瓨涓烘枃浠跺彂閫佺粰浠庢満锛岃繖涓€杩囩▼闇€瑕佺‘淇濅富鏈烘湁瓒冲澶氱殑绌轰綑鍐呭瓨銆傝嫢蹇収鏂囦欢杈冨ぇ锛屽闆嗙兢鐨勬湇鍔¤兘鍔涗細浜х敓杈冨ぇ鐨勫奖鍝嶏紝鑰屼笖澶嶅埗杩囩▼鏄湪浠庢満鏂板姞鍏ラ泦缇ゆ垨鑰呬粠鏈哄拰涓绘満缃戠粶鏂紑閲嶈繛鏃堕兘浼氳繘琛岋紝涔熷氨鏄綉缁滄尝鍔ㄩ兘浼氶€犳垚涓绘満鍜屼粠鏈洪棿鐨勪竴娆″叏閲忕殑鏁版嵁澶嶅埗锛岃繖瀵瑰疄闄呯殑绯荤粺杩愯惀閫犳垚浜嗕笉灏忕殑楹荤儲銆?/li>
- Redis杈冮毦鏀寔鍦ㄧ嚎鎵╁锛屽湪闆嗙兢瀹归噺杈惧埌涓婇檺鏃跺湪绾挎墿瀹逛細鍙樺緱寰堝鏉傘€備负閬垮厤杩欎竴闂锛岃繍缁翠汉鍛樺湪绯荤粺涓婄嚎鏃跺繀椤荤‘淇濇湁瓒冲鐨勭┖闂达紝杩欏璧勬簮閫犳垚浜嗗緢澶х殑娴垂銆?/li>
鍏跺疄redis鐨勪富浠庢ā寮忓緢绠€鍗曪紝鍦ㄥ疄闄呯殑鐢熶骇鐜涓槸寰堝皯浣跨敤鐨勶紝鎴戜篃涓嶅缓璁湪瀹為檯鐨勭敓浜х幆澧冧腑浣跨敤涓讳粠妯″紡鏉ユ彁渚涚郴缁熺殑楂樺彲鐢ㄦ€э紝涔嬫墍浠ヤ笉寤鸿浣跨敤閮芥槸鐢卞畠鐨勭己鐐归€犳垚鐨勶紝鍦ㄦ暟鎹噺闈炲父澶х殑鎯呭喌锛屾垨鑰呭绯荤粺鐨勯珮鍙敤鎬ц姹傚緢楂樼殑鎯呭喌涓嬶紝涓讳粠妯″紡涔熸槸涓嶇ǔ瀹氱殑銆?/p>
鍝ㄥ叺妯″紡:
璇ユā寮忔槸浠嶳edis鐨?.6鐗堟湰寮€濮嬫彁渚涚殑锛屼絾鏄綋鏃惰繖涓増鏈殑妯″紡鏄笉绋冲畾鐨勶紝鐩村埌Redis鐨?.8鐗堟湰浠ュ悗锛岃繖涓摠鍏垫ā寮忔墠绋冲畾涓嬫潵锛屾棤璁烘槸涓讳粠妯″紡锛岃繕鏄摠鍏垫ā寮忥紝杩欎袱涓ā寮忛兘鏈変竴涓棶棰橈紝涓嶈兘姘村钩鎵╁锛屽苟涓旇繖涓や釜妯″紡鐨勯珮鍙敤鐗规€ч兘浼氬彈鍒癕aster涓昏妭鐐瑰唴瀛樼殑闄愬埗銆?/p>
Sentinel(鍝ㄥ叺)杩涚▼鏄敤浜庣洃鎺edis闆嗙兢涓璏aster涓绘湇鍔″櫒宸ヤ綔鐨勭姸鎬侊紝鍦∕aster涓绘湇鍔″櫒鍙戠敓鏁呴殰鐨勬椂鍊欙紝鍙互瀹炵幇Master鍜孲lave鏈嶅姟鍣ㄧ殑鍒囨崲锛屼繚璇佺郴缁熺殑楂樺彲鐢ㄣ€?/p>
Sentinel锛堝摠鍏碉級杩涚▼鐨勪綔鐢?/p>
- 鐩戞帶(Monitoring): 鍝ㄥ叺(sentinel) 浼氫笉鏂湴妫€鏌ヤ綘鐨凪aster鍜孲lave鏄惁杩愪綔姝e父銆?/li>
- 鎻愰啋(Notification)锛氬綋琚洃鎺х殑鏌愪釜Redis鑺傜偣鍑虹幇闂鏃? 鍝ㄥ叺(sentinel) 鍙互閫氳繃 API 鍚戠鐞嗗憳鎴栬€呭叾浠栧簲鐢ㄧ▼搴忓彂閫侀€氱煡銆?/li>
- 鑷姩鏁呴殰杩佺Щ(Automatic failover)锛氬綋涓€涓狹aster涓嶈兘姝e父宸ヤ綔鏃讹紝鍝ㄥ叺(sentinel) 浼氬紑濮嬩竴娆¤嚜鍔ㄦ晠闅滆縼绉绘搷浣滐紝瀹冧細灏嗗け鏁圡aster鐨勫叾涓竴涓猄lave鍗囩骇涓烘柊鐨凪aster, 骞惰澶辨晥Master鐨勫叾浠朣lave鏀逛负澶嶅埗鏂扮殑Master锛涘綋瀹㈡埛绔瘯鍥捐繛鎺ュけ鏁堢殑Master鏃讹紝闆嗙兢涔熶細鍚戝鎴风杩斿洖鏂癕aster鐨勫湴鍧€锛屼娇寰楅泦缇ゅ彲浠ヤ娇鐢ㄧ幇鍦ㄧ殑Master鏇挎崲澶辨晥Master銆侻aster鍜孲lave鏈嶅姟鍣ㄥ垏鎹㈠悗锛孧aster鐨剅edis.conf銆丼lave鐨剅edis.conf鍜宻entinel.conf鐨勯厤缃枃浠剁殑鍐呭閮戒細鍙戠敓鐩稿簲鐨勬敼鍙橈紝鍗筹紝Master涓绘湇鍔″櫒鐨剅edis.conf閰嶇疆鏂囦欢涓細澶氫竴琛宻laveof鐨勯厤缃紝sentinel.conf鐨勭洃鎺х洰鏍囦細闅忎箣璋冩崲銆?/li>
Sentinel锛堝摠鍏碉級杩涚▼鐨勫伐浣滄柟寮?/p>
- 姣忎釜Sentinel锛堝摠鍏碉級杩涚▼浠ユ瘡绉掗挓涓€娆$殑棰戠巼鍚戞暣涓泦缇や腑鐨凪aster涓绘湇鍔″櫒锛孲lave浠庢湇鍔″櫒浠ュ強鍏朵粬Sentinel锛堝摠鍏碉級杩涚▼鍙戦€佷竴涓?PING 鍛戒护銆?/li>
- 濡傛灉涓€涓疄渚嬶紙instance锛夎窛绂绘渶鍚庝竴娆℃湁鏁堝洖澶?PING 鍛戒护鐨勬椂闂磋秴杩?down-after-milliseconds 閫夐」鎵€鎸囧畾鐨勫€硷紝 鍒欒繖涓疄渚嬩細琚?Sentinel锛堝摠鍏碉級杩涚▼鏍囪涓轰富瑙備笅绾匡紙SDOWN锛?/li>
- 濡傛灉涓€涓狹aster涓绘湇鍔″櫒琚爣璁颁负涓昏涓嬬嚎锛圫DOWN锛夛紝鍒欐鍦ㄧ洃瑙嗚繖涓狹aster涓绘湇鍔″櫒鐨勬墍鏈?Sentinel锛堝摠鍏碉級杩涚▼瑕佷互姣忕涓€娆$殑棰戠巼纭Master涓绘湇鍔″櫒鐨勭‘杩涘叆浜嗕富瑙備笅绾跨姸鎬?/li>
- 褰撴湁瓒冲鏁伴噺鐨?Sentinel锛堝摠鍏碉級杩涚▼锛堝ぇ浜庣瓑浜庨厤缃枃浠舵寚瀹氱殑鍊硷級鍦ㄦ寚瀹氱殑鏃堕棿鑼冨洿鍐呯‘璁aster涓绘湇鍔″櫒杩涘叆浜嗕富瑙備笅绾跨姸鎬侊紙SDOWN锛夛紝 鍒橫aster涓绘湇鍔″櫒浼氳鏍囪涓哄瑙備笅绾匡紙ODOWN锛?/li>
- 鍦ㄤ竴鑸儏鍐典笅锛?姣忎釜 Sentinel锛堝摠鍏碉級杩涚▼浼氫互姣?10 绉掍竴娆$殑棰戠巼鍚戦泦缇や腑鐨勬墍鏈塎aster涓绘湇鍔″櫒銆丼lave浠庢湇鍔″櫒鍙戦€?INFO 鍛戒护銆?/li>
- 褰揗aster涓绘湇鍔″櫒琚?Sentinel锛堝摠鍏碉級杩涚▼鏍囪涓哄瑙備笅绾匡紙ODOWN锛夋椂锛孲entinel锛堝摠鍏碉級杩涚▼鍚戜笅绾跨殑 Master涓绘湇鍔″櫒鐨勬墍鏈?Slave浠庢湇鍔″櫒鍙戦€?INFO 鍛戒护鐨勯鐜囦細浠?10 绉掍竴娆℃敼涓烘瘡绉掍竴娆°€?/li>
- 鑻ユ病鏈夎冻澶熸暟閲忕殑 Sentinel锛堝摠鍏碉級杩涚▼鍚屾剰 Master涓绘湇鍔″櫒涓嬬嚎锛?Master涓绘湇鍔″櫒鐨勫瑙備笅绾跨姸鎬佸氨浼氳绉婚櫎銆傝嫢 Master涓绘湇鍔″櫒閲嶆柊鍚?Sentinel锛堝摠鍏碉級杩涚▼鍙戦€?PING 鍛戒护杩斿洖鏈夋晥鍥炲锛孧aster涓绘湇鍔″櫒鐨勪富瑙備笅绾跨姸鎬佸氨浼氳绉婚櫎銆?/li>
鍝ㄥ叺妯″紡鐨勪紭缂虹偣
浼樼偣:
- 鍝ㄥ叺闆嗙兢妯″紡鏄熀浜庝富浠庢ā寮忕殑锛屾墍鏈変富浠庣殑浼樼偣锛屽摠鍏垫ā寮忓悓鏍峰叿鏈夈€?/li>
- 涓讳粠鍙互鍒囨崲锛屾晠闅滃彲浠ヨ浆绉伙紝绯荤粺鍙敤鎬ф洿濂姐€?/li>
- 鍝ㄥ叺妯″紡鏄富浠庢ā寮忕殑鍗囩骇锛岀郴缁熸洿鍋ュ.锛屽彲鐢ㄦ€ф洿楂樸€?/li>
缂虹偣:
- Redis杈冮毦鏀寔鍦ㄧ嚎鎵╁锛屽湪闆嗙兢瀹归噺杈惧埌涓婇檺鏃跺湪绾挎墿瀹逛細鍙樺緱寰堝鏉傘€備负閬垮厤杩欎竴闂锛岃繍缁翠汉鍛樺湪绯荤粺涓婄嚎鏃跺繀椤荤‘淇濇湁瓒冲鐨勭┖闂达紝杩欏璧勬簮閫犳垚浜嗗緢澶х殑娴垂銆?/li>
- 閰嶇疆澶嶆潅
Redis瀹樻柟 Cluster闆嗙兢妯″紡
Redis Cluster鏄竴绉嶆湇鍔″櫒Sharding鎶€鏈紝3.0鐗堟湰寮€濮嬫寮忔彁渚涖€?img alt="鎶€鏈浘鐗? class="has" src="https://img-blog.csdn.net/20181008152757554?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3B3MTkxNDEwMTQ3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70" width="495" height="570" />
鍦ㄨ繖涓浘涓紝姣忎竴涓摑鑹茬殑鍦堥兘浠h〃鐫€涓€涓猺edis鐨勬湇鍔″櫒鑺傜偣銆傚畠浠换浣曚袱涓妭鐐逛箣闂撮兘鏄浉浜掕繛閫氱殑銆傚鎴风鍙互涓庝换浣曚竴涓妭鐐圭浉杩炴帴锛岀劧鍚庡氨鍙互璁块棶闆嗙兢涓殑浠讳綍涓€涓妭鐐广€傚鍏惰繘琛屽瓨鍙栧拰鍏朵粬鎿嶄綔銆?/p>
Redis闆嗙兢鏁版嵁鍒嗙墖
鍦╮edis鐨勬瘡涓€涓妭鐐逛笂锛岄兘鏈夎繖涔堜袱涓笢瑗匡紝涓€涓槸鎻掓Ы锛坰lot锛夊彲浠ョ悊瑙d负鏄竴涓彲浠ュ瓨鍌ㄤ袱涓暟鍊肩殑涓€涓彉閲忚繖涓彉閲忕殑鍙栧€艰寖鍥存槸锛?-16383銆傝繕鏈変竴涓氨鏄痗luster鎴戜釜浜烘妸杩欎釜cluster鐞嗚В涓烘槸涓€涓泦缇ょ鐞嗙殑鎻掍欢銆傚綋鎴戜滑鐨勫瓨鍙栫殑key鍒拌揪鐨勬椂鍊欙紝redis浼氭牴鎹甤rc16鐨勭畻娉曞緱鍑轰竴涓粨鏋滐紝鐒跺悗鎶婄粨鏋滃 16384 姹備綑鏁帮紝杩欐牱姣忎釜 key 閮戒細瀵瑰簲涓€涓紪鍙峰湪 0-16383 涔嬮棿鐨勫搱甯屾Ы锛岄€氳繃杩欎釜鍊硷紝鍘绘壘鍒板搴旂殑鎻掓Ы鎵€瀵瑰簲鐨勮妭鐐癸紝鐒跺悗鐩存帴鑷姩璺宠浆鍒拌繖涓搴旂殑鑺傜偣涓婅繘琛屽瓨鍙栨搷浣溿€?img alt="鎶€鏈浘鐗? class="has" src="https://img-blog.csdn.net/20181008154116173?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3B3MTkxNDEwMTQ3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70" width="927" height="629" />
杩樻湁灏辨槸鍥犱负濡傛灉闆嗙兢鐨勮瘽锛屾槸鏈夊ソ澶氫釜redis涓€璧峰伐浣滅殑锛岄偅涔堬紝灏遍渶瑕佽繖涓泦缇や笉鏄偅涔堝鏄撴寕鎺夛紝鎵€浠ュ憿锛岀悊璁轰笂灏卞簲璇ョ粰闆嗙兢涓殑姣忎釜鑺傜偣鑷冲皯涓€涓鐢ㄧ殑redis鏈嶅姟銆傝繖涓鐢ㄧ殑redis绉颁负浠庤妭鐐癸紙slave锛夈€傞偅涔堣繖涓泦缇ゆ槸濡備綍鍒ゆ柇鏄惁鏈夋煇涓妭鐐规寕鎺変簡鍛紵
棣栧厛瑕佽鐨勬槸锛屾瘡涓€涓妭鐐归兘瀛樻湁杩欎釜闆嗙兢鎵€鏈変富鑺傜偣浠ュ強浠庤妭鐐圭殑淇℃伅銆?/p>
瀹冧滑涔嬮棿閫氳繃浜掔浉鐨刾ing-pong鍒ゆ柇鏄惁鑺傜偣鍙互杩炴帴涓娿€傚鏋滄湁涓€鍗婁互涓婄殑鑺傜偣鍘籶ing涓€涓妭鐐圭殑鏃跺€欐病鏈夊洖搴旓紝闆嗙兢灏辫涓鸿繖涓妭鐐瑰畷鏈轰簡锛岀劧鍚庡幓杩炴帴瀹冪殑澶囩敤鑺傜偣銆傚鏋滄煇涓妭鐐瑰拰鎵€鏈変粠鑺傜偣鍏ㄩ儴鎸傛帀锛屾垜浠泦缇ゅ氨杩涘叆faill鐘舵€併€傝繕鏈夊氨鏄鏋滄湁涓€鍗婁互涓婄殑涓昏妭鐐瑰畷鏈猴紝閭d箞鎴戜滑闆嗙兢鍚屾牱杩涘叆鍙戝姏浜嗙姸鎬併€傝繖灏辨槸鎴戜滑鐨剅edis鐨勬姇绁ㄦ満鍒讹紝鍏蜂綋鍘熺悊濡備笅鍥炬墍绀猴細
- 鎶曠エ杩囩▼鏄泦缇や腑鎵€鏈塵aster鍙備笌,濡傛灉鍗婃暟浠ヤ笂master鑺傜偣涓巑aster鑺傜偣閫氫俊瓒呮椂(cluster-node-timeout),璁や负褰撳墠master鑺傜偣鎸傛帀.
- 浠€涔堟椂鍊欐暣涓泦缇や笉鍙敤(cluster_state:fail)?
- 濡傛灉闆嗙兢浠绘剰master鎸傛帀,涓斿綋鍓峬aster娌℃湁slave.闆嗙兢杩涘叆fail鐘舵€?涔熷彲浠ョ悊瑙f垚闆嗙兢鐨剆lot鏄犲皠[0-16383]涓嶅畬鏁存椂杩涘叆fail鐘舵€? ps : redis-3.0.0.rc1鍔犲叆cluster-require-full-coverage鍙傛暟,榛樿鍏抽棴,鎵撳紑闆嗙兢鍏煎閮ㄥ垎澶辫触.
- 濡傛灉闆嗙兢浠绘剰master鎸傛帀,涓斿綋鍓峬aster娌℃湁slave.闆嗙兢杩涘叆fail鐘舵€?涔熷彲浠ョ悊瑙f垚闆嗙兢鐨剆lot鏄犲皠[0-16383]涓嶅畬鏁存椂杩涘叆fail鐘舵€? ps : redis-3.0.0.rc1鍔犲叆cluster-require-full-coverage鍙傛暟,榛樿鍏抽棴,鎵撳紑闆嗙兢鍏煎閮ㄥ垎澶辫触.
Redis 3.0鐨勯泦缇ゆ柟妗堟湁浠ヤ笅涓や釜闂銆?/p>
- 涓€涓猂edis瀹炰緥鍏峰浜?ldquo;鏁版嵁瀛樺偍”鍜?ldquo;璺敱閲嶅畾鍚?rdquo;锛屽畬鍏ㄥ幓涓績鍖栫殑璁捐銆傝繖甯︽潵鐨勫ソ澶勬槸閮ㄧ讲闈炲父绠€鍗曪紝鐩存帴閮ㄧ讲Redis灏辫锛屼笉鍍廋odis鏈夐偅涔堝鐨勭粍浠跺拰渚濊禆銆備絾甯︽潵鐨勯棶棰樻槸寰堥毦瀵逛笟鍔¤繘琛屾棤鐥涚殑鍗囩骇锛屽鏋滃摢澶㏑edis闆嗙兢鍑轰簡浠€涔堜弗閲嶇殑Bug锛屽氨鍙兘鍥炴粴鏁翠釜Redis闆嗙兢銆?/li>
- 瀵瑰崗璁繘琛屼簡杈冨ぇ鐨勪慨鏀癸紝瀵瑰簲鐨凴edis瀹㈡埛绔篃闇€瑕佸崌绾с€傚崌绾edis瀹㈡埛绔悗璋佽兘纭繚娌℃湁Bug锛熻€屼笖瀵逛簬绾夸笂宸茬粡澶ц妯¤繍琛岀殑涓氬姟锛屽崌绾т唬鐮佷腑鐨凴edis瀹㈡埛绔篃鏄竴涓緢楹荤儲鐨勪簨鎯呫€?/li>
Redis Cluster鏄疪edis 3.0浠ュ悗鎵嶆寮忔帹鍑猴紝鏃堕棿杈冩櫄锛岀洰鍓嶈兘璇佹槑鍦ㄥぇ瑙勬ā鐢熶骇鐜涓嬫垚鍔熺殑妗堜緥杩樹笉鏄緢澶氾紝闇€瑕佹椂闂存楠屻€?/strong>
Jedis sharding闆嗙兢
Redis Sharding鍙互璇存槸鍦≧edis cluster鍑烘潵涔嬪墠涓氱晫鏅亶鐨勯噰鐢ㄦ柟寮忥紝鍏朵富瑕佹€濇兂鏄噰鐢╤ash绠楁硶灏嗗瓨鍌ㄦ暟鎹殑key杩涜hash鏁e垪锛岃繖鏍风壒瀹氱殑key浼氳瀹氫负鍒扮壒瀹氱殑鑺傜偣涓娿€?/p>
搴嗗垢鐨勬槸锛孞ava Redis瀹㈡埛绔┍鍔↗edis宸叉敮鎸丷edis Sharding鍔熻兘锛屽嵆ShardedJedis浠ュ強缁撳悎缂撳瓨姹犵殑ShardedJedisPool
Jedis鐨凴edis Sharding瀹炵幇鍏锋湁濡備笅鐗圭偣锛?/p>
- 閲囩敤涓€鑷存€у搱甯岀畻娉曪紝灏唊ey鍜岃妭鐐筺ame鍚屾椂hashing锛岀劧鍚庤繘琛屾槧灏勫尮閰嶏紝閲囩敤鐨勭畻娉曟槸MURMUR_HASH銆傞噰鐢ㄤ竴鑷存€у搱甯岃€屼笉鏄噰鐢ㄧ畝鍗曠被浼煎搱甯屾眰妯℃槧灏勭殑涓昏鍘熷洜鏄綋澧炲姞鎴栧噺灏戣妭鐐规椂锛屼笉浼氫骇鐢熺敱浜庨噸鏂板尮閰嶉€犳垚鐨剅ehashing銆備竴鑷存€у搱甯屽彧褰卞搷鐩搁偦鑺傜偣key鍒嗛厤锛屽奖鍝嶉噺灏忋€?/li>
- 涓轰簡閬垮厤涓€鑷存€у搱甯屽彧褰卞搷鐩搁偦鑺傜偣閫犳垚鑺傜偣鍒嗛厤鍘嬪姏锛孲hardedJedis浼氬姣忎釜Redis鑺傜偣鏍规嵁鍚嶅瓧(娌℃湁锛孞edis浼氳祴浜堢己鐪佸悕瀛?浼氳櫄鎷熷寲鍑?60涓櫄鎷熻妭鐐硅繘琛屾暎鍒椼€傛牴鎹潈閲峸eight锛屼篃鍙櫄鎷熷寲鍑?60鍊嶆暟鐨勮櫄鎷熻妭鐐广€傜敤铏氭嫙鑺傜偣鍋氭槧灏勫尮閰嶏紝鍙互鍦ㄥ鍔犳垨鍑忓皯Redis鑺傜偣鏃讹紝key鍦ㄥ悇Redis鑺傜偣绉诲姩鍐嶅垎閰嶆洿鍧囧寑锛岃€屼笉鏄彧鏈夌浉閭昏妭鐐瑰彈褰卞搷銆?/li>
- ShardedJedis鏀寔keyTagPattern妯″紡锛屽嵆鎶藉彇key鐨勪竴閮ㄥ垎keyTag鍋歴harding锛岃繖鏍烽€氳繃鍚堢悊鍛藉悕key锛屽彲浠ュ皢涓€缁勭浉鍏宠仈鐨刱ey鏀惧叆鍚屼竴涓猂edis鑺傜偣锛岃繖鍦ㄩ伩鍏嶈法鑺傜偣璁块棶鐩稿叧鏁版嵁鏃跺緢閲嶈銆?/li>
褰撶劧锛孯edis Sharding杩欑杞婚噺鐏垫椿鏂瑰紡蹇呯劧鍦ㄩ泦缇ゅ叾瀹冭兘鍔涙柟闈㈠仛鍑哄Ε鍗忋€傛瘮濡傛墿瀹癸紝褰撴兂瑕佸鍔燫edis鑺傜偣鏃讹紝灏界閲囩敤涓€鑷存€у搱甯岋紝姣曠珶杩樻槸浼氭湁key鍖归厤涓嶅埌鑰屼涪澶憋紝杩欐椂闇€瑕侀敭鍊艰縼绉汇€?br />浣滀负杞婚噺绾у鎴风sharding锛屽鐞哛edis閿€艰縼绉绘槸涓嶇幇瀹炵殑锛岃繖灏辫姹傚簲鐢ㄥ眰闈㈠厑璁窻edis涓暟鎹涪澶辨垨浠庡悗绔暟鎹簱閲嶆柊鍔犺浇鏁版嵁銆備絾鏈変簺鏃跺€欙紝鍑荤┛缂撳瓨灞傦紝鐩存帴璁块棶鏁版嵁搴撳眰锛屼細瀵圭郴缁熻闂€犳垚寰堝ぇ鍘嬪姏銆?/p>
鍒╃敤涓棿浠朵唬鐞?/h2>
涓棿浠剁殑浣滅敤鏄皢鎴戜滑闇€瑕佸瓨鍏edis涓殑鏁版嵁鐨刱ey閫氳繃涓€濂楃畻娉曡绠楀緱鍑轰竴涓€笺€傜劧鍚庢牴鎹繖涓€兼壘鍒板搴旂殑redis鑺傜偣锛屽皢杩欎簺鏁版嵁瀛樺湪杩欎釜redis鐨勮妭鐐逛腑銆?/p>
甯哥敤鐨勪腑闂翠欢鏈夎繖鍑犵
- Twemproxy
- Codis
- nginx
鍏蜂綋鐢ㄦ硶灏变笉璧樿堪浜嗭紝鍙互鑷鐧惧害銆?/p>
鎬荤粨
- 瀹㈡埛绔垎鐗囷紙sharding锛夐渶瑕佸鎴风缁存姢鍒嗙墖绠楁硶锛岃繖鏄竴绉嶉潤鎬佺殑鍒嗙墖鏂规锛岄渶瑕佸鍔犳垨鑰呭噺灏慠edis瀹炰緥鐨勬暟閲忥紝闇€瑕佹墜宸ヨ皟鏁村垎鐗囩殑绋嬪簭銆?/li>
- 鍒╃敤涓棿浠剁殑鎯呭喌鍒欎細褰卞搷鍒皉edis鐨勬€ц兘锛屽叿浣撶湅涓棿浠惰€屽畾锛屾瘯绔熸墍鏈夎姹傞兘瑕佺粡杩囦腑闂翠欢涓€灞傝繃婊?/li>
- 瀹樻柟鎻愪緵鏂规锛岀幇鏃剁偣鎴愬姛妗堜緥涓嶅銆?/li>
以上是关于Redis闆嗙兢閮芥湁鍝簺妯″紡的主要内容,如果未能解决你的问题,请参考以下文章