Redis搴旂敤鍦烘櫙(杞

Redis搴旂敤鍦烘櫙(杞?

杞嚜锛?a href="http://blog.csdn.net/hguisu/article/details/8836819#t11" style="line-height: 1.5;">http://blog.csdn.net/hguisu/article/details/8836819#t11

1. 聽MySql+Memcached鏋舵瀯鐨勯棶棰?/span>

銆€銆€瀹為檯MySQL鏄€傚悎杩涜娴烽噺鏁版嵁瀛樺偍鐨勶紝閫氳繃Memcached灏嗙儹鐐规暟鎹姞杞藉埌cache锛屽姞閫熻闂紝寰堝鍏徃閮芥浘缁忎娇鐢ㄨ繃杩欐牱鐨勬灦鏋勶紝浣嗛殢鐫€涓氬姟鏁版嵁閲忕殑涓嶆柇澧炲姞锛屽拰璁块棶閲忕殑鎸佺画澧為暱锛屾垜浠亣鍒颁簡寰堝闂锛?/p>

銆€銆€1.MySQL闇€瑕佷笉鏂繘琛屾媶搴撴媶琛紝Memcached涔熼渶涓嶆柇璺熺潃鎵╁锛屾墿瀹瑰拰缁存姢宸ヤ綔鍗犳嵁澶ч噺寮€鍙戞椂闂淬€?/p>

銆€銆€2.Memcached涓嶮ySQL鏁版嵁搴撴暟鎹竴鑷存€ч棶棰樸€?/p>

銆€銆€3.Memcached鏁版嵁鍛戒腑鐜囦綆鎴杁own鏈猴紝澶ч噺璁块棶鐩存帴绌块€忓埌DB锛孧ySQL鏃犳硶鏀拺銆?/p>

銆€銆€4.璺ㄦ満鎴縞ache鍚屾闂銆?/p>

銆€銆€浼楀NoSQL鐧捐姳榻愭斁锛屽浣曢€夋嫨

銆€銆€鏈€杩戝嚑骞达紝涓氱晫涓嶆柇娑岀幇鍑哄緢澶氬悇绉嶅悇鏍风殑NoSQL浜у搧锛岄偅涔堝浣曟墠鑳芥纭湴浣跨敤濂借繖浜涗骇鍝侊紝鏈€澶у寲鍦板彂鎸ュ叾闀垮锛屾槸鎴戜滑闇€瑕佹繁鍏ョ爺绌跺拰鎬濊€冪殑闂锛屽疄闄呭綊鏍圭粨搴曟渶閲嶈鐨勬槸浜嗚В杩欎簺浜у搧鐨勫畾浣嶏紝骞朵笖浜嗚В鍒版瘡娆句骇鍝佺殑tradeoffs锛屽湪瀹為檯搴旂敤涓仛鍒版壃闀块伩鐭紝鎬讳綋涓婅繖浜汵oSQL涓昏鐢ㄤ簬瑙e喅浠ヤ笅鍑犵闂

銆€銆€1.灏戦噺鏁版嵁瀛樺偍锛岄珮閫熻鍐欒闂€傛绫讳骇鍝侀€氳繃鏁版嵁鍏ㄩ儴in-momery 鐨勬柟寮忔潵淇濊瘉楂橀€熻闂紝鍚屾椂鎻愪緵鏁版嵁钀藉湴鐨勫姛鑳斤紝瀹為檯杩欐鏄疪edis鏈€涓昏鐨勯€傜敤鍦烘櫙銆?/span>

銆€銆€2.娴烽噺鏁版嵁瀛樺偍锛屽垎甯冨紡绯荤粺鏀寔锛屾暟鎹竴鑷存€т繚璇侊紝鏂逛究鐨勯泦缇よ妭鐐规坊鍔?鍒犻櫎銆?/p>

銆€銆€3.杩欐柟闈㈡渶鍏蜂唬琛ㄦ€х殑鏄痙ynamo鍜宐igtable 2绡囪鏂囨墍闃愯堪鐨勬€濊矾銆傚墠鑰呮槸涓€涓畬鍏ㄦ棤涓績鐨勮璁★紝鑺傜偣涔嬮棿閫氳繃gossip鏂瑰紡浼犻€掗泦缇や俊鎭紝鏁版嵁淇濊瘉鏈€缁堜竴鑷存€э紝鍚庤€呮槸涓€涓腑蹇冨寲鐨勬柟妗堣璁★紝閫氳繃绫讳技涓€涓垎甯冨紡閿佹湇鍔℃潵淇濊瘉寮轰竴鑷存€?鏁版嵁鍐欏叆鍏堝啓鍐呭瓨鍜宺edo log锛岀劧鍚庡畾鏈焎ompat褰掑苟鍒扮鐩樹笂锛屽皢闅忔満鍐欎紭鍖栦负椤哄簭鍐欙紝鎻愰珮鍐欏叆鎬ц兘銆?/p>

銆€銆€4.Schema free锛宎uto-sharding绛夈€傛瘮濡傜洰鍓嶅父瑙佺殑涓€浜涙枃妗f暟鎹簱閮芥槸鏀寔schema-free鐨勶紝鐩存帴瀛樺偍json鏍煎紡鏁版嵁锛屽苟涓旀敮鎸乤uto-sharding绛夊姛鑳斤紝姣斿mongodb銆?/p>

銆€銆€闈㈠杩欎簺涓嶅悓绫诲瀷鐨凬oSQL浜у搧,鎴戜滑闇€瑕佹牴鎹垜浠殑涓氬姟鍦烘櫙閫夋嫨鏈€鍚堥€傜殑浜у搧銆?/p>

聽 聽 聽 聽Redis鏈€閫傚悎鎵€鏈夋暟鎹甶n-momory鐨勫満鏅紝铏界劧Redis涔熸彁渚涙寔涔呭寲鍔熻兘锛屼絾瀹為檯鏇村鐨勬槸涓€涓猟isk-backed鐨勫姛鑳斤紝璺熶紶缁熸剰涔変笂鐨勬寔涔呭寲鏈夋瘮杈冨ぇ鐨勫樊鍒紝閭d箞鍙兘澶у灏变細鏈夌枒闂紝浼间箮Redis鏇村儚涓€涓姞寮虹増鐨凪emcached锛岄偅涔堜綍鏃朵娇鐢∕emcached,浣曟椂浣跨敤Redis鍛?

聽 聽 聽 聽濡傛灉绠€鍗曞湴姣旇緝Redis涓嶮emcached鐨勫尯鍒紝澶у鏁伴兘浼氬緱鍒颁互涓嬭鐐癸細

聽 聽 聽1 銆丷edis涓嶄粎浠呮敮鎸佺畝鍗曠殑k/v绫诲瀷鐨勬暟鎹紝鍚屾椂杩樻彁渚沴ist锛宻et锛寊set锛宧ash绛夋暟鎹粨鏋勭殑瀛樺偍銆?br style="padding: 0px; margin: 0px;">聽 聽 聽2 銆丷edis鏀寔鏁版嵁鐨勫浠斤紝鍗砿aster-slave妯″紡鐨勬暟鎹浠姐€?br style="padding: 0px; margin: 0px;">聽 聽 聽3 銆丷edis鏀寔鏁版嵁鐨勬寔涔呭寲锛屽彲浠ュ皢鍐呭瓨涓殑鏁版嵁淇濇寔鍦ㄧ鐩樹腑锛岄噸鍚殑鏃跺€欏彲浠ュ啀娆″姞杞借繘琛屼娇鐢ㄣ€?/p>

2. 聽Redis甯哥敤鏁版嵁绫诲瀷

Redis鏈€涓哄父鐢ㄧ殑鏁版嵁绫诲瀷涓昏鏈変互涓嬶細

  • String
  • Hash
  • List
  • Set
  • Sorted set
  • pub/sub
  • Transactions

鍦ㄥ叿浣撴弿杩拌繖鍑犵鏁版嵁绫诲瀷涔嬪墠锛屾垜浠厛閫氳繃涓€寮犲浘浜嗚В涓婻edis鍐呴儴鍐呭瓨绠$悊涓槸濡備綍鎻忚堪杩欎簺涓嶅悓鏁版嵁绫诲瀷鐨勶細

Redis搴旂敤鍦烘櫙(杞

聽 聽 聽 聽 聽棣栧厛Redis鍐呴儴浣跨敤涓€涓猺edisObject瀵硅薄鏉ヨ〃绀烘墍鏈夌殑key鍜寁alue,redisObject鏈€涓昏鐨勪俊鎭涓婂浘鎵€绀猴細

聽 聽 聽 聽 聽type浠h〃涓€涓獀alue瀵硅薄鍏蜂綋鏄綍绉嶆暟鎹被鍨嬶紝

聽 聽 聽 聽 聽encoding鏄笉鍚屾暟鎹被鍨嬪湪redis鍐呴儴鐨勫瓨鍌ㄦ柟寮忥紝

聽 聽 聽 聽 聽姣斿锛歵ype=string浠h〃value瀛樺偍鐨勬槸涓€涓櫘閫氬瓧绗︿覆锛岄偅涔堝搴旂殑encoding鍙互鏄痳aw鎴栬€呮槸int,濡傛灉鏄痠nt鍒欎唬琛ㄥ疄闄卹edis鍐呴儴鏄寜鏁板€煎瀷绫诲瓨鍌ㄥ拰琛ㄧず杩欎釜瀛楃涓茬殑锛屽綋鐒跺墠鎻愭槸杩欎釜瀛楃涓叉湰韬彲浠ョ敤鏁板€艰〃绀猴紝姣斿:"123" "456"杩欐牱鐨勫瓧绗︿覆銆?/p>

聽 聽 聽 聽杩欓噷闇€瑕佺壒娈婅鏄庝竴涓媣m瀛楁锛屽彧鏈夋墦寮€浜哛edis鐨勮櫄鎷熷唴瀛樺姛鑳斤紝姝ゅ瓧娈垫墠浼氱湡姝g殑鍒嗛厤鍐呭瓨锛岃鍔熻兘榛樿鏄叧闂姸鎬佺殑锛岃鍔熻兘浼氬湪鍚庨潰鍏蜂綋鎻忚堪銆傞€氳繃涓婂浘鎴戜滑鍙互鍙戠幇Redis浣跨敤redisObject鏉ヨ〃绀烘墍鏈夌殑key/value鏁版嵁鏄瘮杈冩氮璐瑰唴瀛樼殑锛屽綋鐒惰繖浜涘唴瀛樼鐞嗘垚鏈殑浠樺嚭涓昏涔熸槸涓轰簡缁橰edis涓嶅悓鏁版嵁绫诲瀷鎻愪緵涓€涓粺涓€鐨勭鐞嗘帴鍙o紝瀹為檯浣滆€呬篃鎻愪緵浜嗗绉嶆柟娉曞府鍔╂垜浠敖閲忚妭鐪佸唴瀛樹娇鐢紝鎴戜滑闅忓悗浼氬叿浣撹璁恒€?/p>


3. 聽鍚勭鏁版嵁绫诲瀷搴旂敤鍜屽疄鐜版柟寮?/span>

涓嬮潰鎴戜滑鍏堟潵閫愪竴鐨勫垎鏋愪笅杩?绉嶆暟鎹被鍨嬬殑浣跨敤鍜屽唴閮ㄥ疄鐜版柟寮?

  • String:
Strings 鏁版嵁缁撴瀯鏄畝鍗曠殑key-value绫诲瀷锛寁alue鍏跺疄涓嶄粎鏄疭tring锛屼篃鍙互鏄暟瀛?

甯哥敤鍛戒护: 聽set,get,decr,incr,mget 绛夈€?/p>

搴旂敤鍦烘櫙锛?/strong>String鏄渶甯哥敤鐨勪竴绉嶆暟鎹被鍨嬶紝鏅€氱殑key/ value 瀛樺偍閮藉彲浠ュ綊涓烘绫?鍗?span style="font-family: 瀹嬩綋; line-height: 25px;">鍙互瀹屽叏瀹炵幇鐩墠 Memcached 鐨勫姛鑳斤紝骞朵笖鏁堢巼鏇撮珮銆傝繕鍙互浜彈Redis鐨勫畾鏃舵寔涔呭寲锛屾搷浣滄棩蹇楀強 Replication绛夊姛鑳姐€傞櫎浜嗘彁渚涗笌 Memcached 涓€鏍风殑get銆乻et銆乮ncr銆乨ecr 绛夋搷浣滃锛孯edis杩樻彁渚涗簡涓嬮潰涓€浜涙搷浣滐細

    • 鑾峰彇瀛楃涓查暱搴?/span>
    • 寰€瀛楃涓瞐ppend鍐呭
    • 璁剧疆鍜岃幏鍙栧瓧绗︿覆鐨勬煇涓€娈靛唴瀹?/span>
    • 璁剧疆鍙婅幏鍙栧瓧绗︿覆鐨勬煇涓€浣嶏紙bit锛?/span>
    • 鎵归噺璁剧疆涓€绯诲垪瀛楃涓茬殑鍐呭

瀹炵幇鏂瑰紡锛?/strong>String鍦╮edis鍐呴儴瀛樺偍榛樿灏辨槸涓€涓瓧绗︿覆锛岃redisObject鎵€寮曠敤锛屽綋閬囧埌incr,decr绛夋搷浣滄椂浼氳浆鎴愭暟鍊煎瀷杩涜璁$畻锛屾鏃秗edisObject鐨別ncoding瀛楁涓篿nt銆?/p>

  • Hash

甯哥敤鍛戒护锛?/strong>hget,hset,hgetall 绛夈€?/p>

搴旂敤鍦烘櫙锛?/strong>鍦∕emcached涓紝鎴戜滑缁忓父灏嗕竴浜涚粨鏋勫寲鐨勪俊鎭墦鍖呮垚HashMap锛屽湪瀹㈡埛绔簭鍒楀寲鍚庡瓨鍌ㄤ负涓€涓瓧绗︿覆鐨勫€硷紝姣斿鐢ㄦ埛鐨勬樀绉般€佸勾榫勩€佹€у埆銆佺Н鍒嗙瓑锛岃繖鏃跺€欏湪闇€瑕佷慨鏀瑰叾涓煇涓€椤规椂锛岄€氬父闇€瑕佸皢鎵€鏈夊€煎彇鍑哄弽搴忓垪鍖栧悗锛屼慨鏀规煇涓€椤圭殑鍊硷紝鍐嶅簭鍒楀寲瀛樺偍鍥炲幓銆?/span>杩欐牱涓嶄粎澧炲ぇ浜嗗紑閿€锛屼篃涓嶉€傜敤浜庝竴浜涘彲鑳藉苟鍙戞搷浣滅殑鍦哄悎锛堟瘮濡備袱涓苟鍙戠殑鎿嶄綔閮介渶瑕佷慨鏀圭Н鍒嗭級銆傝€孯edis鐨凥ash缁撴瀯鍙互浣夸綘鍍忓湪鏁版嵁搴撲腑Update涓€涓睘鎬т竴鏍峰彧淇敼鏌愪竴椤瑰睘鎬у€笺€?/span>

聽 聽 聽 聽 鎴戜滑绠€鍗曚妇涓疄渚嬫潵鎻忚堪涓婬ash鐨勫簲鐢ㄥ満鏅紝姣斿鎴戜滑瑕佸瓨鍌ㄤ竴涓敤鎴蜂俊鎭璞℃暟鎹紝鍖呭惈浠ヤ笅淇℃伅锛?/p>

鐢ㄦ埛ID涓烘煡鎵剧殑key锛屽瓨鍌ㄧ殑value鐢ㄦ埛瀵硅薄鍖呭惈濮撳悕锛屽勾榫勶紝鐢熸棩绛変俊鎭紝濡傛灉鐢ㄦ櫘閫氱殑key/value缁撴瀯鏉ュ瓨鍌紝涓昏鏈変互涓?绉嶅瓨鍌ㄦ柟寮忥細

Redis搴旂敤鍦烘櫙(杞

绗竴绉嶆柟寮忓皢鐢ㄦ埛ID浣滀负鏌ユ壘key,鎶婂叾浠栦俊鎭皝瑁呮垚涓€涓璞′互搴忓垪鍖栫殑鏂瑰紡瀛樺偍锛岃繖绉嶆柟寮忕殑缂虹偣鏄紝澧炲姞浜嗗簭鍒楀寲/鍙嶅簭鍒楀寲鐨勫紑閿€锛屽苟涓斿湪闇€瑕佷慨鏀瑰叾涓竴椤逛俊鎭椂锛岄渶瑕佹妸鏁翠釜瀵硅薄鍙栧洖锛屽苟涓斾慨鏀规搷浣滈渶瑕佸骞跺彂杩涜淇濇姢锛屽紩鍏AS绛夊鏉傞棶棰樸€?/p>

Redis搴旂敤鍦烘櫙(杞

绗簩绉嶆柟娉曟槸杩欎釜鐢ㄦ埛淇℃伅瀵硅薄鏈夊灏戞垚鍛樺氨瀛樻垚澶氬皯涓猭ey-value瀵瑰効锛岀敤鐢ㄦ埛ID+瀵瑰簲灞炴€х殑鍚嶇О浣滀负鍞竴鏍囪瘑鏉ュ彇寰楀搴斿睘鎬х殑鍊硷紝铏界劧鐪佸幓浜嗗簭鍒楀寲寮€閿€鍜屽苟鍙戦棶棰橈紝浣嗘槸鐢ㄦ埛ID涓洪噸澶嶅瓨鍌紝濡傛灉瀛樺湪澶ч噺杩欐牱鐨勬暟鎹紝鍐呭瓨娴垂杩樻槸闈炲父鍙鐨勩€?/p>

閭d箞Redis鎻愪緵鐨凥ash寰堝ソ鐨勮В鍐充簡杩欎釜闂锛孯edis鐨凥ash瀹為檯鏄唴閮ㄥ瓨鍌ㄧ殑Value涓轰竴涓狧ashMap锛屽苟鎻愪緵浜嗙洿鎺ュ瓨鍙栬繖涓狹ap鎴愬憳鐨勬帴鍙o紝濡備笅鍥撅細

Redis搴旂敤鍦烘櫙(杞

涔熷氨鏄锛孠ey浠嶇劧鏄敤鎴稩D, value鏄竴涓狹ap锛岃繖涓狹ap鐨刱ey鏄垚鍛樼殑灞炴€у悕锛寁alue鏄睘鎬у€硷紝杩欐牱瀵规暟鎹殑淇敼鍜屽瓨鍙栭兘鍙互鐩存帴閫氳繃鍏跺唴閮∕ap鐨凨ey(Redis閲岀О鍐呴儴Map鐨刱ey涓篺ield), 涔熷氨鏄€氳繃 key(鐢ㄦ埛ID) + field(灞炴€ф爣绛? 灏卞彲浠ユ搷浣滃搴斿睘鎬ф暟鎹簡锛屾棦涓嶉渶瑕侀噸澶嶅瓨鍌ㄦ暟鎹紝涔熶笉浼氬甫鏉ュ簭鍒楀寲鍜屽苟鍙戜慨鏀规帶鍒剁殑闂銆傚緢濂界殑瑙e喅浜嗛棶棰樸€?/p>

杩欓噷鍚屾椂闇€瑕佹敞鎰忥紝Redis鎻愪緵浜嗘帴鍙?hgetall)鍙互鐩存帴鍙栧埌鍏ㄩ儴鐨勫睘鎬ф暟鎹?浣嗘槸濡傛灉鍐呴儴Map鐨勬垚鍛樺緢澶氾紝閭d箞娑夊強鍒伴亶鍘嗘暣涓唴閮∕ap鐨勬搷浣滐紝鐢变簬Redis鍗曠嚎绋嬫ā鍨嬬殑缂樻晠锛岃繖涓亶鍘嗘搷浣滃彲鑳戒細姣旇緝鑰楁椂锛岃€屽彟鍏跺畠瀹㈡埛绔殑璇锋眰瀹屽叏涓嶅搷搴旓紝杩欑偣闇€瑕佹牸澶栨敞鎰忋€?/p>

瀹炵幇鏂瑰紡锛?/strong>

涓婇潰宸茬粡璇村埌Redis Hash瀵瑰簲Value鍐呴儴瀹為檯灏辨槸涓€涓狧ashMap锛屽疄闄呰繖閲屼細鏈?绉嶄笉鍚屽疄鐜帮紝杩欎釜Hash鐨勬垚鍛樻瘮杈冨皯鏃禦edis涓轰簡鑺傜渷鍐呭瓨浼氶噰鐢ㄧ被浼间竴缁存暟缁勭殑鏂瑰紡鏉ョ揣鍑戝瓨鍌紝鑰屼笉浼氶噰鐢ㄧ湡姝g殑HashMap缁撴瀯锛屽搴旂殑value redisObject鐨別ncoding涓簔ipmap,褰撴垚鍛樻暟閲忓澶ф椂浼氳嚜鍔ㄨ浆鎴愮湡姝g殑HashMap,姝ゆ椂encoding涓篽t銆?/p>

  • List

甯哥敤鍛戒护锛?/strong>lpush,rpush,lpop,rpop,lrange绛夈€?/p>

搴旂敤鍦烘櫙锛?/strong>

Redis list鐨勫簲鐢ㄥ満鏅潪甯稿锛屼篃鏄疪edis鏈€閲嶈鐨勬暟鎹粨鏋勪箣涓€锛屾瘮濡倀witter鐨勫叧娉ㄥ垪琛紝绮変笣鍒楄〃绛夐兘鍙互鐢≧edis鐨刲ist缁撴瀯鏉ュ疄鐜般€?/p>

Lists 灏辨槸閾捐〃锛岀浉淇$暐鏈夋暟鎹粨鏋勭煡璇嗙殑浜洪兘搴旇鑳界悊瑙e叾缁撴瀯銆備娇鐢↙ists缁撴瀯锛屾垜浠彲浠ヨ交鏉惧湴瀹炵幇鏈€鏂版秷鎭帓琛岀瓑鍔熻兘銆侺ists鐨勫彟涓€涓簲鐢ㄥ氨鏄秷鎭槦鍒楋紝
鍙互鍒╃敤Lists鐨凱USH鎿嶄綔锛屽皢浠诲姟瀛樺湪Lists涓紝鐒跺悗宸ヤ綔绾跨▼鍐嶇敤POP鎿嶄綔灏嗕换鍔″彇鍑鸿繘琛屾墽琛屻€俁edis杩樻彁渚涗簡鎿嶄綔Lists涓煇涓€娈电殑api锛屼綘鍙互鐩存帴鏌ヨ锛屽垹闄ists涓煇涓€娈电殑鍏冪礌銆?/p>

瀹炵幇鏂瑰紡锛?/strong>

Redis list鐨勫疄鐜颁负涓€涓弻鍚戦摼琛紝鍗冲彲浠ユ敮鎸佸弽鍚戞煡鎵惧拰閬嶅巻锛屾洿鏂逛究鎿嶄綔锛屼笉杩囧甫鏉ヤ簡閮ㄥ垎棰濆鐨勫唴瀛樺紑閿€锛孯edis鍐呴儴鐨勫緢澶氬疄鐜帮紝鍖呮嫭鍙戦€佺紦鍐查槦鍒楃瓑涔熼兘鏄敤鐨勮繖涓暟鎹粨鏋勩€?/p>

  • Set

甯哥敤鍛戒护锛?/strong>

sadd,spop,smembers,sunion 绛夈€?/p>

搴旂敤鍦烘櫙锛?/strong>

Redis set瀵瑰鎻愪緵鐨勫姛鑳戒笌list绫讳技鏄竴涓垪琛ㄧ殑鍔熻兘锛岀壒娈婁箣澶勫湪浜巗et鏄彲浠ヨ嚜鍔ㄦ帓閲嶇殑锛屽綋浣犻渶瑕佸瓨鍌ㄤ竴涓垪琛ㄦ暟鎹紝鍙堜笉甯屾湜鍑虹幇閲嶅鏁版嵁鏃讹紝set鏄竴涓緢濂界殑閫夋嫨锛屽苟涓攕et鎻愪緵浜嗗垽鏂煇涓垚鍛樻槸鍚﹀湪涓€涓猻et闆嗗悎鍐呯殑閲嶈鎺ュ彛锛岃繖涓篃鏄痩ist鎵€涓嶈兘鎻愪緵鐨勩€?/p>

Sets 闆嗗悎鐨勬蹇靛氨鏄竴鍫嗕笉閲嶅鍊肩殑缁勫悎銆傚埄鐢≧edis鎻愪緵鐨凷ets鏁版嵁缁撴瀯锛屽彲浠ュ瓨鍌ㄤ竴浜涢泦鍚堟€х殑鏁版嵁锛屾瘮濡傚湪寰崥搴旂敤涓紝鍙互灏嗕竴涓敤鎴锋墍鏈夌殑鍏虫敞浜哄瓨鍦ㄤ竴涓泦鍚堜腑锛屽皢鍏舵墍鏈夌矇涓濆瓨鍦ㄤ竴涓泦鍚堛€俁edis杩樹负闆嗗悎鎻愪緵浜嗘眰浜ら泦銆佸苟闆嗐€佸樊闆嗙瓑鎿嶄綔锛屽彲浠ラ潪甯告柟渚跨殑瀹炵幇濡傚叡鍚屽叧娉ㄣ€佸叡鍚屽枩濂姐€佷簩搴﹀ソ鍙嬬瓑鍔熻兘锛屽涓婇潰鐨勬墍鏈夐泦鍚堟搷浣滐紝浣犺繕鍙互浣跨敤涓嶅悓鐨勫懡浠ら€夋嫨灏嗙粨鏋滆繑鍥炵粰瀹㈡埛绔繕鏄瓨闆嗗埌涓€涓柊鐨勯泦鍚堜腑銆?/p>

瀹炵幇鏂瑰紡锛?/strong>

set 鐨勫唴閮ㄥ疄鐜版槸涓€涓?value姘歌繙涓簄ull鐨凥ashMap锛屽疄闄呭氨鏄€氳繃璁$畻hash鐨勬柟寮忔潵蹇€熸帓閲嶇殑锛岃繖涔熸槸set鑳芥彁渚涘垽鏂竴涓垚鍛樻槸鍚﹀湪闆嗗悎鍐呯殑鍘熷洜銆?/p>

  • Sorted Set

甯哥敤鍛戒护锛?/strong>

zadd,zrange,zrem,zcard绛?/p>

浣跨敤鍦烘櫙锛?/strong>

Redis sorted set鐨勪娇鐢ㄥ満鏅笌set绫讳技锛屽尯鍒槸set涓嶆槸鑷姩鏈夊簭鐨勶紝鑰宻orted set鍙互閫氳繃鐢ㄦ埛棰濆鎻愪緵涓€涓紭鍏堢骇(score)鐨勫弬鏁版潵涓烘垚鍛樻帓搴忥紝骞朵笖鏄彃鍏ユ湁搴忕殑锛屽嵆鑷姩鎺掑簭銆傚綋浣犻渶瑕佷竴涓湁搴忕殑骞朵笖涓嶉噸澶嶇殑闆嗗悎鍒楄〃锛岄偅涔堝彲浠ラ€夋嫨sorted set鏁版嵁缁撴瀯锛屾瘮濡倀witter 鐨刾ublic timeline鍙互浠ュ彂琛ㄦ椂闂翠綔涓簊core鏉ュ瓨鍌紝杩欐牱鑾峰彇鏃跺氨鏄嚜鍔ㄦ寜鏃堕棿鎺掑ソ搴忕殑銆?/p>

鍙﹀杩樺彲浠ョ敤Sorted Sets鏉ュ仛甯︽潈閲嶇殑闃熷垪锛屾瘮濡傛櫘閫氭秷鎭殑score涓?锛岄噸瑕佹秷鎭殑score涓?锛岀劧鍚庡伐浣滅嚎绋嬪彲浠ラ€夋嫨鎸塻core鐨勫€掑簭鏉ヨ幏鍙栧伐浣滀换鍔°€傝閲嶈鐨勪换鍔′紭鍏堟墽琛屻€?/p>

瀹炵幇鏂瑰紡锛?/strong>

Redis sorted set鐨勫唴閮ㄤ娇鐢℉ashMap鍜岃烦璺冭〃(SkipList)鏉ヤ繚璇佹暟鎹殑瀛樺偍鍜屾湁搴忥紝HashMap閲屾斁鐨勬槸鎴愬憳鍒皊core鐨勬槧灏勶紝鑰岃烦璺冭〃閲屽瓨鏀剧殑鏄墍鏈夌殑鎴愬憳锛屾帓搴忎緷鎹槸HashMap閲屽瓨鐨剆core,浣跨敤璺宠穬琛ㄧ殑缁撴瀯鍙互鑾峰緱姣旇緝楂樼殑鏌ユ壘鏁堢巼锛屽苟涓斿湪瀹炵幇涓婃瘮杈冪畝鍗曘€?/p>

  • Pub/Sub

Pub/Sub 浠庡瓧闈笂鐞嗚В灏辨槸鍙戝竷锛圥ublish锛変笌璁㈤槄锛圫ubscribe锛夛紝鍦≧edis涓紝浣犲彲浠ヨ瀹氬鏌愪竴涓猭ey鍊艰繘琛屾秷鎭彂甯冨強娑堟伅璁㈤槄锛屽綋涓€涓猭ey鍊间笂杩涜浜嗘秷鎭彂甯冨悗锛屾墍鏈夎闃呭畠鐨勫鎴风閮戒細鏀跺埌鐩稿簲鐨勬秷鎭€傝繖涓€鍔熻兘鏈€鏄庢樉鐨勭敤娉曞氨鏄敤浣滃疄鏃舵秷鎭郴缁燂紝姣斿鏅€氱殑鍗虫椂鑱婂ぉ锛岀兢鑱婄瓑鍔熻兘銆?/p>

  • Transactions

璋佽NoSQL閮戒笉鏀寔浜嬪姟锛岃櫧鐒禦edis鐨凾ransactions鎻愪緵鐨勫苟涓嶆槸涓ユ牸鐨凙CID鐨勪簨鍔★紙姣斿涓€涓茬敤EXEC鎻愪氦鎵ц鐨勫懡浠わ紝鍦ㄦ墽琛屼腑鏈嶅姟鍣ㄥ畷鏈猴紝閭d箞浼氭湁涓€閮ㄥ垎鍛戒护鎵ц浜嗭紝鍓╀笅鐨勬病鎵ц锛夛紝浣嗘槸杩欎釜Transactions杩樻槸鎻愪緵浜嗗熀鏈殑鍛戒护鎵撳寘鎵ц鐨勫姛鑳斤紙鍦ㄦ湇鍔″櫒涓嶅嚭闂鐨勬儏鍐典笅锛屽彲浠ヤ繚璇佷竴杩炰覆鐨勫懡浠ゆ槸椤哄簭鍦ㄤ竴璧锋墽琛岀殑锛屼腑闂存湁浼氭湁鍏跺畠瀹㈡埛绔懡浠ゆ彃杩涙潵鎵ц锛夈€俁edis杩樻彁渚涗簡涓€涓猈atch鍔熻兘锛屼綘鍙互瀵逛竴涓猭ey杩涜Watch锛岀劧鍚庡啀鎵цTransactions锛屽湪杩欒繃绋嬩腑锛屽鏋滆繖涓猈atched鐨勫€艰繘琛屼簡淇敼锛岄偅涔堣繖涓猅ransactions浼氬彂鐜板苟鎷掔粷鎵ц銆?/p>


4. 聽Redis瀹為檯搴旂敤鍦烘櫙

聽 聽 聽 聽 Redis鍦ㄥ緢澶氭柟闈笌鍏朵粬鏁版嵁搴撹В鍐虫柟妗堜笉鍚岋細瀹冧娇鐢ㄥ唴瀛樻彁渚涗富瀛樺偍鏀寔锛岃€屼粎浣跨敤纭洏鍋氭寔涔呮€х殑瀛樺偍锛涘畠鐨勬暟鎹ā鍨嬮潪甯哥嫭鐗癸紝鐢ㄧ殑鏄崟绾跨▼銆傚彟涓€涓ぇ鍖哄埆鍦ㄤ簬锛屼綘鍙互鍦ㄥ紑鍙戠幆澧冧腑浣跨敤Redis鐨勫姛鑳斤紝浣嗗嵈涓嶉渶瑕佽浆鍒癛edis銆?/p>

杞悜Redis褰撶劧涔熸槸鍙彇鐨勶紝璁稿寮€鍙戣€呬粠涓€寮€濮嬪氨鎶奟edis浣滀负棣栭€夋暟鎹簱锛涗絾璁炬兂濡傛灉浣犵殑寮€鍙戠幆澧冨凡缁忔惌寤哄ソ锛屽簲鐢ㄥ凡缁忓湪涓婇潰杩愯浜嗭紝閭d箞鏇存崲鏁版嵁搴撴鏋舵樉鐒朵笉閭d箞瀹规槗銆傚彟澶栧湪涓€浜涢渶瑕佸ぇ瀹归噺鏁版嵁闆嗙殑搴旂敤锛孯edis涔熷苟涓嶉€傚悎锛屽洜涓哄畠鐨勬暟鎹泦涓嶄細瓒呰繃绯荤粺鍙敤鐨勫唴瀛樸€傛墍浠ュ鏋滀綘鏈夊ぇ鏁版嵁搴旂敤锛岃€屼笖涓昏鏄鍙栬闂ā寮忥紝閭d箞Redis骞朵笉鏄纭殑閫夋嫨銆?/p>

聽 聽 聽 聽 鐒惰€屾垜鍠滄Redis鐨勪竴鐐瑰氨鏄綘鍙互鎶婂畠铻嶅叆鍒颁綘鐨勭郴缁熶腑鏉ワ紝杩欏氨鑳藉瑙e喅寰堝闂锛屾瘮濡傞偅浜涗綘鐜版湁鐨勬暟鎹簱澶勭悊璧锋潵鎰熷埌缂撴參鐨勪换鍔°€傝繖浜涗綘灏卞彲浠ラ€氳繃Redis鏉ヨ繘琛屼紭鍖栵紝鎴栬€呬负搴旂敤鍒涘缓浜涙柊鐨勫姛鑳姐€傚湪鏈枃涓紝鎴戝氨鎯虫帰璁ㄤ竴浜涙€庢牱灏哛edis鍔犲叆鍒扮幇鏈夌殑鐜涓紝骞跺埄鐢ㄥ畠鐨勫師璇懡浠ょ瓑鍔熻兘鏉ヨВ鍐?浼犵粺鐜涓鍒扮殑涓€浜涘父瑙侀棶棰樸€傚湪杩欎簺渚嬪瓙涓紝Redis閮戒笉鏄綔涓洪閫夋暟鎹簱銆?/p>

1銆佹樉绀烘渶鏂扮殑椤圭洰鍒楄〃

涓嬮潰杩欎釜璇彞甯哥敤鏉ユ樉绀烘渶鏂伴」鐩紝闅忕潃鏁版嵁澶氫簡锛屾煡璇㈡鏃犵枒闂細瓒婃潵瓒婃參銆?/p>

  1. SELECT聽*聽FROM聽foo聽WHERE聽...聽ORDERBYtimeDESC聽LIMIT聽10聽聽聽

聽 聽 聽 聽 鍦╓eb搴旂敤涓紝鈥滃垪鍑烘渶鏂扮殑鍥炲鈥濅箣绫荤殑鏌ヨ闈炲父鏅亶锛岃繖閫氬父浼氬甫鏉ュ彲鎵╁睍鎬ч棶棰樸€傝繖浠や汉娌抚锛屽洜涓洪」鐩湰鏉ュ氨鏄寜杩欎釜椤哄簭琚垱寤虹殑锛屼絾瑕佽緭鍑鸿繖涓『搴忓嵈涓嶅緱涓嶈繘琛屾帓搴忔搷浣溿€?/p>

聽 聽 聽 聽 绫讳技鐨勯棶棰樺氨鍙互鐢≧edis鏉ヨВ鍐炽€傛瘮濡傝锛屾垜浠殑涓€涓猈eb搴旂敤鎯宠鍒楀嚭鐢ㄦ埛璐村嚭鐨勬渶鏂?0鏉¤瘎璁恒€傚湪鏈€鏂扮殑璇勮杈逛笂鎴戜滑鏈変竴涓€滄樉绀哄叏閮ㄢ€濈殑閾炬帴锛岀偣鍑诲悗灏卞彲浠ヨ幏寰楁洿澶氱殑璇勮銆?/p>

聽 聽 聽 聽 鎴戜滑鍋囪鏁版嵁搴撲腑鐨勬瘡鏉¤瘎璁洪兘鏈変竴涓敮涓€鐨勯€掑鐨処D瀛楁銆?/p>

聽 聽 聽 聽 鎴戜滑鍙互浣跨敤鍒嗛〉鏉ュ埗浣滀富椤靛拰璇勮椤碉紝浣跨敤Redis鐨勬ā鏉匡紝姣忔鏂拌瘎璁哄彂琛ㄦ椂锛屾垜浠細灏嗗畠鐨処D娣诲姞鍒颁竴涓猂edis鍒楄〃锛?/p>

  1. LPUSH聽latest.comments聽<ID>聽聽聽

聽 聽 聽 聽鎴戜滑灏嗗垪琛ㄨ鍓负鎸囧畾闀垮害锛屽洜姝edis鍙渶瑕佷繚瀛樻渶鏂扮殑5000鏉¤瘎璁猴細

聽 聽 聽 聽LTRIM聽latest.comments聽0聽5000聽

聽 聽 聽 姣忔鎴戜滑闇€瑕佽幏鍙栨渶鏂拌瘎璁虹殑椤圭洰鑼冨洿鏃讹紝鎴戜滑璋冪敤涓€涓嚱鏁版潵瀹屾垚锛堜娇鐢ㄤ吉浠g爜锛夛細

  1. FUNCTION聽get_latest_comments(start,聽num_items):聽聽
  2. 聽聽聽聽id_list聽=聽redis.lrange("latest.comments",start,start+num_items聽-聽1)聽聽
  3. 聽聽聽聽IF聽id_list.length聽<聽num_items聽聽
  4. 聽聽聽聽聽聽聽聽id_list聽=聽SQL_DB("SELECT聽...聽ORDER聽BY聽time聽LIMIT聽...")聽聽
  5. 聽聽聽聽END聽聽
  6. 聽聽聽聽RETURN聽id_list聽聽
  7. END聽聽

聽 聽 聽 杩欓噷鎴戜滑鍋氱殑寰堢畝鍗曘€傚湪Redis涓垜浠殑鏈€鏂癐D浣跨敤浜嗗父椹荤紦瀛橈紝杩欐槸涓€鐩存洿鏂扮殑銆備絾鏄垜浠仛浜嗛檺鍒朵笉鑳借秴杩?000涓狪D锛屽洜姝ゆ垜浠殑鑾峰彇ID鍑芥暟浼氫竴鐩磋闂甊edis銆傚彧鏈夊湪start/count鍙傛暟瓒呭嚭浜嗚繖涓寖鍥寸殑鏃跺€欙紝鎵嶉渶瑕佸幓璁块棶鏁版嵁搴撱€?/p>

聽 聽 聽 聽 鎴戜滑鐨勭郴缁熶笉浼氬儚浼犵粺鏂瑰紡閭f牱鈥滃埛鏂扳€濈紦瀛橈紝Redis瀹炰緥涓殑淇℃伅姘歌繙鏄竴鑷寸殑銆係QL鏁版嵁搴擄紙鎴栨槸纭洏涓婄殑鍏朵粬绫诲瀷鏁版嵁搴擄級鍙槸鍦ㄧ敤鎴烽渶瑕佽幏鍙栤€滃緢杩溾€濈殑鏁版嵁鏃舵墠浼氳瑙﹀彂锛岃€屼富椤垫垨绗竴涓瘎璁洪〉鏄笉浼氶夯鐑﹀埌纭洏涓婄殑鏁版嵁搴撲簡銆?/p>

2銆佸垹闄や笌杩囨护

聽 聽 聽 鎴戜滑鍙互浣跨敤LREM鏉ュ垹闄よ瘎璁恒€傚鏋滃垹闄ゆ搷浣滈潪甯稿皯锛屽彟涓€涓€夋嫨鏄洿鎺ヨ烦杩囪瘎璁烘潯鐩殑鍏ュ彛锛屾姤鍛婅璇ヨ瘎璁哄凡缁忎笉瀛樺湪銆?/p>

聽 聽 聽 聽鏈変簺鏃跺€欎綘鎯宠缁欎笉鍚岀殑鍒楄〃闄勫姞涓婁笉鍚岀殑杩囨护鍣ㄣ€傚鏋滆繃婊ゅ櫒鐨勬暟閲忓彈鍒伴檺鍒讹紝浣犲彲浠ョ畝鍗曠殑涓烘瘡涓笉鍚岀殑杩囨护鍣ㄤ娇鐢ㄤ笉鍚岀殑Redis鍒楄〃銆傛瘯绔熸瘡涓垪琛ㄥ彧鏈?000鏉¢」鐩紝浣哛edis鍗磋兘澶熶娇鐢ㄩ潪甯稿皯鐨勫唴瀛樻潵澶勭悊鍑犵櫨涓囨潯椤圭洰銆?/p>

3銆佹帓琛屾鐩稿叧

聽 聽 聽 鍙︿竴涓緢鏅亶鐨勯渶姹傛槸鍚勭鏁版嵁搴撶殑鏁版嵁骞堕潪瀛樺偍鍦ㄥ唴瀛樹腑锛屽洜姝ゅ湪鎸夊緱鍒嗘帓搴忎互鍙婂疄鏃舵洿鏂拌繖浜涘嚑涔庢瘡绉掗挓閮介渶瑕佹洿鏂扮殑鍔熻兘涓婃暟鎹簱鐨勬€ц兘涓嶅鐞嗘兂銆?/p>

聽 聽 聽 鍏稿瀷鐨勬瘮濡傞偅浜涘湪绾挎父鎴忕殑鎺掕姒滐紝姣斿涓€涓狥acebook鐨勬父鎴忥紝鏍规嵁寰楀垎浣犻€氬父鎯宠锛?/p>

聽 聽 聽 聽 聽- 鍒楀嚭鍓?00鍚嶉珮鍒嗛€夋墜

聽 聽 聽 聽 聽- 鍒楀嚭鏌愮敤鎴峰綋鍓嶇殑鍏ㄧ悆鎺掑悕

聽 聽 聽 杩欎簺鎿嶄綔瀵逛簬Redis鏉ヨ灏忚彍涓€纰燂紝鍗充娇浣犳湁鍑犵櫨涓囦釜鐢ㄦ埛锛屾瘡鍒嗛挓閮戒細鏈夊嚑鐧句竾涓柊鐨勫緱鍒嗐€?/p>

聽 聽 聽 妯″紡鏄繖鏍风殑锛屾瘡娆¤幏寰楁柊寰楀垎鏃讹紝鎴戜滑鐢ㄨ繖鏍风殑浠g爜锛?/p>

聽 聽 聽 ZADD聽leaderboard 聽<score> 聽<username>聽

聽 聽 聽浣犲彲鑳界敤userID鏉ュ彇浠sername锛岃繖鍙栧喅浜庝綘鏄€庝箞璁捐鐨勩€?/p>

聽 聽 聽 寰楀埌鍓?00鍚嶉珮鍒嗙敤鎴峰緢绠€鍗曪細ZREVRANGE leaderboard 0 99銆?/p>

聽 聽 聽 鐢ㄦ埛鐨勫叏鐞冩帓鍚嶄篃鐩镐技锛屽彧闇€瑕侊細ZRANK leaderboard <username>銆?/p>

4銆佹寜鐓х敤鎴锋姇绁ㄥ拰鏃堕棿鎺掑簭

聽 聽 聽 鎺掕姒滅殑涓€绉嶅父瑙佸彉浣撴ā寮忓氨鍍廟eddit鎴朒acker News鐢ㄧ殑閭f牱锛屾柊闂绘寜鐓х被浼间笅闈㈢殑鍏紡鏍规嵁寰楀垎鏉ユ帓搴忥細

聽 聽 聽 聽score聽=聽points聽/聽time^alpha聽

聽 聽 聽 鍥犳鐢ㄦ埛鐨勬姇绁ㄤ細鐩稿簲鐨勬妸鏂伴椈鎸栧嚭鏉ワ紝浣嗘椂闂翠細鎸夌収涓€瀹氱殑鎸囨暟灏嗘柊闂诲煁涓嬪幓銆備笅闈㈡槸鎴戜滑鐨勬ā寮忥紝褰撶劧绠楁硶鐢变綘鍐冲畾銆?/p>

聽 聽 聽 妯″紡鏄繖鏍风殑锛屽紑濮嬫椂鍏堣瀵熼偅浜涘彲鑳芥槸鏈€鏂扮殑椤圭洰锛屼緥濡傞椤典笂鐨?000鏉℃柊闂婚兘鏄€欓€夎€咃紝鍥犳鎴戜滑鍏堝拷瑙嗘帀鍏朵粬鐨勶紝杩欏疄鐜拌捣鏉ュ緢绠€鍗曘€?/p>

聽 聽 聽 姣忔鏂扮殑鏂伴椈璐翠笂鏉ュ悗锛屾垜浠皢ID娣诲姞鍒板垪琛ㄤ腑锛屼娇鐢↙PUSH + LTRIM锛岀‘淇濆彧鍙栧嚭鏈€鏂扮殑1000鏉¢」鐩€?/p>

聽 聽 聽 鏈変竴椤瑰悗鍙颁换鍔¤幏鍙栬繖涓垪琛紝骞朵笖鎸佺画鐨勮绠楄繖1000鏉℃柊闂讳腑姣忔潯鏂伴椈鐨勬渶缁堝緱鍒嗐€傝绠楃粨鏋滅敱ZADD鍛戒护鎸夌収鏂扮殑椤哄簭濉厖鐢熸垚鍒楄〃锛岃€佹柊闂诲垯琚竻闄ゃ€傝繖閲岀殑鍏抽敭鎬濊矾鏄帓搴忓伐浣滄槸鐢卞悗鍙颁换鍔℃潵瀹屾垚鐨勩€?/p>

5銆佸鐞嗚繃鏈熼」鐩?/strong>

聽 聽 聽 鍙︿竴绉嶅父鐢ㄧ殑椤圭洰鎺掑簭鏄寜鐓ф椂闂存帓搴忋€傛垜浠娇鐢╱nix鏃堕棿浣滀负寰楀垎鍗冲彲銆?/p>

聽 聽 聽 妯″紡濡備笅锛?/p>

聽 聽 聽 聽- 姣忔鏈夋柊椤圭洰娣诲姞鍒版垜浠殑闈濺edis鏁版嵁搴撴椂锛屾垜浠妸瀹冨姞鍏ュ埌鎺掑簭闆嗗悎涓€傝繖鏃舵垜浠敤鐨勬槸鏃堕棿灞炴€э紝current_time鍜宼ime_to_live銆?/p>

聽 聽 聽 聽- 鍙︿竴椤瑰悗鍙颁换鍔′娇鐢╖RANGE鈥CORES鏌ヨ鎺掑簭闆嗗悎锛屽彇鍑烘渶鏂扮殑10涓」鐩€傚鏋滃彂鐜皍nix鏃堕棿宸茬粡杩囨湡锛屽垯鍦ㄦ暟鎹簱涓垹闄ゆ潯鐩€?/p>

6銆佽鏁?/strong>

聽 聽 聽 聽Redis鏄竴涓緢濂界殑璁℃暟鍣紝杩欒鎰熻阿INCRBY鍜屽叾浠栫浉浼煎懡浠ゃ€?/p>

聽 聽 聽 聽鎴戠浉淇′綘鏇捐澶氭鎯宠缁欐暟鎹簱鍔犱笂鏂扮殑璁℃暟鍣紝鐢ㄦ潵鑾峰彇缁熻鎴栨樉绀烘柊淇℃伅锛屼絾鏄渶鍚庡嵈鐢变簬鍐欏叆鏁忔劅鑰屼笉寰椾笉鏀惧純瀹冧滑銆?/p>

聽 聽 聽 聽濂戒簡锛岀幇鍦ㄤ娇鐢≧edis灏变笉闇€瑕佸啀鎷呭績浜嗐€傛湁浜嗗師瀛愰€掑锛坅tomic increment锛夛紝浣犲彲浠ユ斁蹇冪殑鍔犱笂鍚勭璁℃暟锛岀敤GETSET閲嶇疆锛屾垨鑰呮槸璁╁畠浠繃鏈熴€?/p>

聽 聽 聽 聽渚嬪杩欐牱鎿嶄綔锛?/p>

聽 聽 聽 聽 聽INCR聽user:<id>聽EXPIRE聽

聽 聽 聽 聽 聽user:<id>聽60聽

聽 聽 聽 聽浣犲彲浠ヨ绠楀嚭鏈€杩戠敤鎴峰湪椤甸潰闂村仠椤夸笉瓒呰繃60绉掔殑椤甸潰娴忚閲忥紝褰撹鏁拌揪鍒版瘮濡?0鏃讹紝灏卞彲浠ユ樉绀哄嚭鏌愪簺鏉″箙鎻愮ず锛屾垨鏄叾瀹冧綘鎯虫樉绀虹殑涓滆タ銆?/p>

7銆佺壒瀹氭椂闂村唴鐨勭壒瀹氶」鐩?/strong>

聽 聽 聽 聽 鍙︿竴椤瑰浜庡叾浠栨暟鎹簱寰堥毦锛屼絾Redis鍋氳捣鏉ュ嵈杞昏€屾槗涓剧殑浜嬪氨鏄粺璁″湪鏌愭鐗圭偣鏃堕棿閲屾湁澶氬皯鐗瑰畾鐢ㄦ埛璁块棶浜嗘煇涓壒瀹氳祫婧愩€傛瘮濡傛垜鎯宠鐭ラ亾鏌愪簺鐗瑰畾鐨勬敞鍐岀敤鎴锋垨IP鍦板潃锛屼粬浠埌搴曟湁澶氬皯璁块棶浜嗘煇绡囨枃绔犮€?/p>

聽 聽 聽 姣忔鎴戣幏寰椾竴娆℃柊鐨勯〉闈㈡祻瑙堟椂鎴戝彧闇€瑕佽繖鏍峰仛锛?/p>

聽 聽 聽 聽SADD聽page:day1:<page_id>聽<user_id>聽

聽 聽 聽 褰撶劧浣犲彲鑳芥兂鐢╱nix鏃堕棿鏇挎崲day1锛屾瘮濡倀ime()-(time()%3600*24)绛夌瓑銆?/p>

聽 聽 聽 鎯崇煡閬撶壒瀹氱敤鎴风殑鏁伴噺鍚楋紵鍙渶瑕佷娇鐢⊿CARD page:day1:<page_id>銆?/p>

聽 聽 聽 聽闇€瑕佹祴璇曟煇涓壒瀹氱敤鎴锋槸鍚﹁闂簡杩欎釜椤甸潰锛烻ISMEMBER page:day1:<page_id>銆?/p>

8銆佸疄鏃跺垎鏋愭鍦ㄥ彂鐢熺殑鎯呭喌锛岀敤浜庢暟鎹粺璁′笌闃叉鍨冨溇閭欢绛?/strong>

聽 聽 聽 聽 鎴戜滑鍙仛浜嗗嚑涓緥瀛愶紝浣嗗鏋滀綘鐮旂┒Redis鐨勫懡浠ら泦锛屽苟涓旂粍鍚堜竴涓嬶紝灏辫兘鑾峰緱澶ч噺鐨勫疄鏃跺垎鏋愭柟娉曪紝鏈夋晥鑰屼笖闈炲父鐪佸姏銆備娇鐢≧edis鍘熻鍛戒护锛屾洿瀹规槗瀹炴柦鍨冨溇閭欢杩囨护绯荤粺鎴栧叾浠栧疄鏃惰窡韪郴缁熴€?/p>

9銆丳ub/Sub

聽 聽 聽 聽Redis鐨凱ub/Sub闈炲父闈炲父绠€鍗曪紝杩愯绋冲畾骞朵笖蹇€熴€傛敮鎸佹ā寮忓尮閰嶏紝鑳藉瀹炴椂璁㈤槄涓庡彇娑堥閬撱€?/p>

10銆侀槦鍒?/strong>

聽 聽 聽 聽 浣犲簲璇ュ凡缁忔敞鎰忓埌鍍弆ist push鍜宭ist pop杩欐牱鐨凴edis鍛戒护鑳藉寰堟柟渚跨殑鎵ц闃熷垪鎿嶄綔浜嗭紝浣嗚兘鍋氱殑鍙笉姝㈣繖浜涳細姣斿Redis杩樻湁list pop鐨勫彉浣撳懡浠わ紝鑳藉鍦ㄥ垪琛ㄤ负绌烘椂闃诲闃熷垪銆?/p>

聽 聽 聽 聽鐜颁唬鐨勪簰鑱旂綉搴旂敤澶ч噺鍦颁娇鐢ㄤ簡娑堟伅闃熷垪锛圡essaging锛夈€傛秷鎭槦鍒椾笉浠呰鐢ㄤ簬绯荤粺鍐呴儴缁勪欢涔嬮棿鐨勯€氫俊锛屽悓鏃朵篃琚敤浜庣郴缁熻窡鍏跺畠鏈嶅姟涔嬮棿鐨勪氦浜掋€傛秷鎭槦鍒楃殑浣跨敤鍙互澧炲姞绯荤粺鐨勫彲鎵╁睍鎬с€佺伒娲绘€у拰鐢ㄦ埛浣撻獙銆傞潪鍩轰簬娑堟伅闃熷垪鐨勭郴缁燂紝鍏惰繍琛岄€熷害鍙栧喅浜庣郴缁熶腑鏈€鎱㈢殑缁勪欢鐨勯€熷害锛堟敞锛氱煭鏉挎晥搴旓級銆傝€屽熀浜庢秷鎭槦鍒楀彲浠ュ皢绯荤粺涓悇缁勪欢瑙i櫎鑰﹀悎锛岃繖鏍风郴缁熷氨涓嶅啀鍙楁渶鎱㈢粍浠剁殑鏉熺細锛屽悇缁勪欢鍙互寮傛杩愯浠庤€屽緱浠ユ洿蹇殑閫熷害瀹屾垚鍚勮嚜鐨勫伐浣溿€?/span>

聽 聽 姝ゅ锛屽綋鏈嶅姟鍣ㄥ鍦ㄩ珮骞跺彂鎿嶄綔鐨勬椂鍊欙紝姣斿棰戠箒鍦板啓鍏ユ棩蹇楁枃浠躲€傚彲浠ュ埄鐢ㄦ秷鎭槦鍒楀疄鐜板紓姝ュ鐞嗐€備粠鑰屽疄鐜伴珮鎬ц兘鐨勫苟鍙戞搷浣溿€?/span>

11銆佺紦瀛?/strong>

聽 聽 聽 聽 Redis鐨勭紦瀛橀儴鍒嗗€煎緱鍐欎竴绡囨柊鏂囩珷锛屾垜杩欓噷鍙槸绠€鍗曠殑璇翠竴涓嬨€俁edis鑳藉鏇夸唬memcached锛岃浣犵殑缂撳瓨浠庡彧鑳藉瓨鍌ㄦ暟鎹彉寰楄兘澶熸洿鏂版暟鎹紝鍥犳浣犱笉鍐嶉渶瑕佹瘡娆¢兘閲嶆柊鐢熸垚鏁版嵁浜嗐€?/p>

姝ら儴鍒嗗唴瀹圭殑鍘熸枃鍦板潃锛歨ttp://antirez.com/post/take-advantage-of-redis-adding-it-to-your-stack.html

5. 聽鍥藉唴澶栦笁涓笉鍚岄鍩熷法澶村垎浜殑Redis瀹炴垬缁忛獙鍙婁娇鐢ㄥ満鏅?/span>

聽 聽

聽 聽 聽闅忕潃搴旂敤瀵归珮鎬ц兘闇€姹傜殑澧炲姞锛孨oSQL閫愭笎鍦ㄥ悇澶у悕浼佺殑绯荤粺鏋舵瀯涓敓鏍瑰彂鑺姐€傝繖閲屾垜浠皢涓哄ぇ瀹跺垎浜?strong>绀句氦宸ㄥご鏂版氮寰崥銆佷紶濯掑法澶碫iacom鍙婂浘鐗囧垎浜鍩熶郊浣艰€匬interest甯︽潵鐨凴edis瀹炶返锛岄鍏堟垜浠湅鏂版氮寰崥聽@鍚浖cobain鐨凴edis瀹炴垬缁忛獙鍒嗕韩锛?/p>

涓€銆佹柊娴井鍗氾細鍙蹭笂鏈€澶х殑Redis闆嗙兢

Tape is Dead锛孌isk is Tape锛孎lash is Disk锛孯AM Locality is King. 鈥?Jim Gray

Redis涓嶆槸姣旇緝鎴愮啛鐨刴emcache鎴栬€匨ysql鐨勬浛浠e搧锛屾槸瀵逛簬澶у瀷浜掕仈缃戠被搴旂敤鍦ㄦ灦鏋勪笂寰堝ソ鐨勮ˉ鍏呫€傜幇鍦ㄦ湁瓒婃潵瓒婂鐨勫簲鐢ㄤ篃鍦ㄧ悍绾峰熀浜嶳edis鍋氭灦鏋勭殑鏀归€犮€傞鍏堢畝鍗曞叕甯冧竴涓婻edis骞冲彴瀹為檯鎯呭喌锛?/p>

  • 2200+浜?commands/day 5000浜縍ead/day 500浜縒rite/day
  • 18TB+ Memory
  • 500+ Servers in 6 IDC 2000+instances

搴旇鏄浗鍐呭姣旇緝澶х殑Redis浣跨敤骞冲彴锛屼粖澶╀富瑕佷粠搴旂敤瑙掑害璋堣皥Redis鏈嶅姟骞冲彴銆?/p>

Redis浣跨敤鍦烘櫙

1.Counting锛堣鏁帮級

璁℃暟鐨勫簲鐢ㄥ湪鍙﹀涓€绡囨枃绔犻噷杈冭缁嗙殑鎻忚堪锛岃鏁板満鏅殑浼樺寲聽http://www.xdata.me/?p=262杩欓噷灏变笉澶氬姞鎻忚堪浜嗐€?/p>

鍙互棰勮鐨勬槸锛屾湁寰堝鍚屽璁や负鎶婅鏁板叏閮ㄥ瓨鍦ㄥ唴瀛樹腑鎴愭湰闈炲父楂橈紝鎴戝湪杩欓噷鐢ㄤ釜鍥捐〃鏉ヨ〃杈句笅鎴戠殑瑙傜偣锛?/p>

Redis搴旂敤鍦烘櫙(杞

寰堝鎯呭喌澶у閮戒細璁炬兂绾娇鐢ㄥ唴瀛樼殑鏂规浼氬緢鏈夊緢楂樻垚鏈紝浣嗗疄闄呮儏鍐靛線寰€浼氭湁涓€浜涗笉涓€鏍凤細

  • COST锛屽浜庢湁涓€瀹氬悶鍚愰渶姹傜殑搴旂敤鏉ヨ锛岃偗瀹氫細鍗曠嫭鐢宠DB銆丆ache璧勬簮锛屽緢澶氭媴蹇僁B鍐欏叆鎬ц兘鐨勫悓瀛﹁繕浼氫富鍔ㄥ皢DB鏇存柊璁板叆寮傛闃熷垪锛岃€岃繖涓夊潡鐨勮祫婧愮殑鍒╃敤鐜囦竴鑸兘涓嶄細澶珮銆傝祫婧愮畻涓嬫潵锛屼綘鎯婂紓鐨勫彂鐜帮細鍙嶈€岀函鍐呭瓨鐨勬柟妗堜細鏇寸簿绠€锛?/li>
  • KISS鍘熷垯锛岃繖瀵逛簬寮€鍙戞槸闈炲父鍙嬪ソ鐨勶紝鎴戝彧闇€瑕佸缓绔嬩竴濂楄繛鎺ユ睜锛屼笉鐢ㄦ媴蹇冩暟鎹竴鑷存€х殑缁存姢锛屼笉鐢ㄧ淮鎶ゅ紓姝ラ槦鍒椼€?/li>
  • Cache绌块€忛闄╋紝濡傛灉鍚庣浣跨敤DB锛岃偗瀹氫笉浼氭彁渚涘緢楂樼殑鍚炲悙鑳藉姏锛宑ache瀹曟満濡傛灉娌℃湁濡ュ杽澶勭悊锛岄偅灏辨偛鍓т簡銆?/li>
  • 澶у鏁扮殑璧峰瀛樺偍闇€姹傦紝瀹归噺杈冨皬銆?/li>

2.Reverse cache锛堝弽鍚慶ache锛?/strong>

闈㈠寰崥甯稿父鍑虹幇鐨勭儹鐐癸紝濡傛渶杩戝嚭鐜颁簡杈冧负鐏垎鐨勭煭閾撅紝鐭椂闂存湁鏁颁互涓囪鐨勪汉鐐瑰嚮銆佽烦杞紝鑰岃繖閲屼細甯稿父娑岀幇涓€浜涢渶姹傦紝姣斿鎴戜滑鍚戝揩閫熷湪璺宠浆鏃跺垽瀹氱敤鎴风瓑绾э紝鏄惁鏈変竴浜涜处鍙风粦瀹氾紝鎬у埆鐖卞ソ浠€涔堢殑锛屽凡缁欏叾灞曠ず涓嶅悓鐨勫唴瀹规垨鑰呬俊鎭€?/p>

鏅€氶噰鐢╩emcache+Mysql鐨勮В鍐虫柟妗堬紝褰撹皟鐢╥d鍚堟硶鐨勬儏鍐典笅锛屽彲鏀拺杈冨ぇ鐨勫悶鍚愩€備絾褰撹皟鐢╥d涓嶅彲鎺э紝鏈夎緝澶氬瀮鍦剧敤鎴疯皟鐢ㄦ椂锛岀敱浜巑emcache鏈湁鍛戒腑锛屼細澶ч噺鐨勭┛閫忚嚦Mysql鏈嶅姟鍣紝鐬棿閫犳垚杩炴帴鏁扮柉闀匡紝鏁翠綋鍚炲悙閲忛檷浣庯紝鍝嶅簲鏃堕棿鍙樻參銆?/p>

杩欓噷鎴戜滑鍙互鐢╮edis璁板綍鍏ㄩ噺鐨勭敤鎴峰垽瀹氫俊鎭紝濡俿tring key:uid int:type锛屽仛涓€娆″弽鍚戠殑cache锛屽綋鐢ㄦ埛鍦╮edis蹇€熻幏鍙栬嚜宸辩瓑绾х瓑淇℃伅鍚庯紝鍐嶅幓Mc+Mysql灞傚幓鑾峰彇鍏ㄩ噺淇℃伅銆傚鍥撅細

Redis搴旂敤鍦烘櫙(杞

褰撶劧杩欎篃涓嶆槸鏈€浼樺寲鐨勫満鏅紝濡傜敤Redis鍋歜loomfilter锛屽彲鑳芥洿鍔犵渷鐢ㄥ唴瀛樸€?/p>

3.Top 10 list

浜у搧杩愯惀鎬讳細璁╀綘灞曠ず鏈€杩戙€佹渶鐑€佺偣鍑荤巼鏈€楂樸€佹椿璺冨害鏈€楂樼瓑绛夋潯浠剁殑top list銆傚緢澶氭洿鏂拌緝棰戠箒鐨勫垪琛ㄥ鏋滀娇鐢∕C+MySQL缁存姢鐨勮瘽缂撳瓨澶辨晥鐨勫彲鑳芥€т細姣旇緝澶э紝閴翠簬鍗犵敤鍐呭瓨杈冨皬鐨勬儏鍐碉紝浣跨敤Redis鍋氬瓨鍌ㄤ篃鏄浉褰撲笉閿欑殑銆?/p>

4.Last Index

鐢ㄦ埛鏈€杩戣闂褰曚篃鏄痳edis list鐨勫緢濂藉簲鐢ㄥ満鏅紝lpush lpop鑷姩杩囨湡鑰佺殑鐧婚檰璁板綍锛屽浜庡紑鍙戞潵璇磋繕鏄潪甯稿弸濂界殑銆?/p>

5.Relation List/Message Queue

杩欓噷鎶婁袱涓姛鑳芥斁鍦ㄦ渶鍚庯紝鍥犱负杩欎袱涓姛鑳藉湪鐜板疄闂褰撲腑閬囧埌浜嗕竴浜涘洶闅撅紝浣嗗湪涓€瀹氶樁娈典篃纭疄瑙e喅浜嗘垜浠緢澶氱殑闂锛屾晠鍦ㄨ繖閲屽彧鍋氳鏄庛€?/p>

Message Queue灏辨槸閫氳繃list鐨刲pop鍙妉push鎺ュ彛杩涜闃熷垪鐨勫啓鍏ュ拰娑堣垂锛岀敱浜庢湰韬€ц兘杈冨ソ涔熻兘瑙e喅澶ч儴鍒嗛棶棰樸€?/p>

6.Fast transaction with Lua

Redis 鐨凩ua鐨勫姛鑳芥墿灞曞疄闄呯粰Redis甯︽潵浜嗘洿澶氱殑搴旂敤鍦烘櫙锛屼綘鍙互缂栧啓鑻ュ共command缁勫悎浣滀负涓€涓皬鍨嬬殑闈為樆濉炰簨鍔℃垨鑰呮洿鏂伴€昏緫锛屽锛氬湪鏀跺埌message鎺ㄩ€佹椂锛屽悓鏃?.缁欒嚜宸辩殑澧炲姞涓€涓湭璇荤殑瀵硅瘽 2.缁欒嚜宸辩殑绉佷俊澧炲姞涓€涓湭璇绘秷鎭?3.鏈€鍚庣粰鍙戦€佷汉鍥炴墽涓€涓畬鎴愭帹閫佹秷鎭紝杩欎竴灞傞€昏緫瀹屽叏鍙互鍦≧edis Server绔疄鐜般€?/p>

浣嗘槸锛岄渶瑕佹敞鎰忕殑鏄疪edis浼氬皢lua script鐨勫叏閮ㄥ唴瀹硅褰曞湪aof鍜屼紶閫佺粰slave锛岃繖涔熷皢鏄纾佺洏锛岀綉鍗′竴涓笉灏忕殑寮€閿€銆?/p>

7.Instead of Memcache

  1. 寰堝娴嬭瘯鍜屽簲鐢ㄥ潎宸茶瘉鏄庯紝
  2. 鍦ㄦ€ц兘鏂归潰Redis骞舵病鏈夎惤鍚巑emcache澶氬皯锛岃€屽崟绾跨▼鐨勬ā鍨嬬粰Redis鍙嶈€屽甫鏉ヤ簡寰堝己鐨勬墿灞曟€с€?/li>
  3. 鍦ㄥ緢澶氬満鏅笅锛孯edis瀵瑰悓涓€浠芥暟鎹殑鍐呭瓨寮€閿€鏄皬浜巑emcache鐨剆lab鍒嗛厤鐨勩€?/li>
  4. Redis鎻愪緵鐨勬暟鎹悓姝ュ姛鑳斤紝鍏跺疄鏄cache鐨勪竴涓己鏈夊姏鍔熻兘鎵╁睍銆?/li>

Redis浣跨敤鐨勯噸瑕佺偣

1.rdb/aof Backup!

鎴戜滑绾夸笂鐨凴edis 95%浠ヤ笂鏄壙鎷呭悗绔瓨鍌ㄥ姛鑳界殑锛屾垜浠笉浠呯敤浣渃ache锛岃€屾洿涓轰竴绉峩-v瀛樺偍锛屼粬瀹屽叏鏇夸唬浜嗗悗绔殑瀛樺偍鏈嶅姟锛圡ySQL锛夛紝鏁呭叾鏁版嵁鏄潪甯搁噸瑕佺殑锛屽鏋滃嚭鐜版暟鎹薄鏌撳拰涓㈠け锛岃鎿嶄綔绛夋儏鍐碉紝灏嗘槸闅句互鎭㈠鐨勩€傛墍浠ュ浠芥槸闈炲父蹇呰鐨勶紒涓烘锛屾垜浠湁鍏变韩鐨刪dfs璧勬簮浣滀负鎴戜滑鐨勫浠芥睜锛屽笇鏈涜兘闅忔椂鍙互杩樺師涓氬姟鎵€闇€鏁版嵁銆?/p>

2.Small item & Small instance!

鐢变簬Redis鍗曠嚎绋嬶紙涓ユ牸鎰忎箟涓婁笉鏄崟绾跨▼锛屼絾璁や负瀵箁equest鐨勫鐞嗘槸鍗曠嚎绋嬬殑锛夌殑妯″瀷锛屽ぇ鐨勬暟鎹粨鏋刲ist,sorted set,hash set鐨勬壒閲忓鐞嗗氨鎰忓懗鐫€鍏朵粬璇锋眰鐨勭瓑寰咃紝鏁呬娇鐢≧edis鐨勫鏉傛暟鎹粨鏋勪竴瀹氳鎺у埗鍏跺崟key-struct鐨勫ぇ灏忋€?/p>

鍙﹀锛孯edis鍗曞疄渚嬬殑鍐呭瓨瀹归噺涔熷簲璇ユ湁涓ユ牸鐨勯檺鍒躲€傚崟瀹炰緥鍐呭瓨瀹归噺杈冨ぇ鍚庯紝鐩存帴甯︽潵鐨勯棶棰樺氨鏄晠闅滄仮澶嶆垨鑰匯ebuild浠庡簱鐨勬椂鍊欐椂闂磋緝闀匡紝鑰屾洿绯熺硶鐨勬槸锛孯edis rewrite aof鍜宻ave rdb鏃讹紝灏嗕細甯︽潵闈炲父澶т笖闀跨殑绯荤粺鍘嬪姏锛屽苟鍗犵敤棰濆鍐呭瓨锛屽緢鍙兘瀵艰嚧绯荤粺鍐呭瓨涓嶈冻绛変弗閲嶅奖鍝嶆€ц兘鐨勭嚎涓婃晠闅溿€傛垜浠嚎涓?6G/128G鍐呭瓨鏈嶅姟鍣ㄤ笉寤鸿鍗曞疄渚嬪閲忓ぇ浜?0/30G銆?/p>

3.Been Available!

涓氱晫璧勬枡鍜屼娇鐢ㄦ瘮杈冨鐨勬槸Redis sentinel锛堝摠鍏碉級

http://www.huangz.me/en/latest/storage/redis_code_analysis/sentinel.html

http://qiita.com/wellflat/items/8935016fdee25d4866d9

2000琛孋瀹炵幇浜嗘湇鍔″櫒鐘舵€佹娴嬶紝鑷姩鏁呴殰杞Щ绛夊姛鑳姐€?/p>

浣嗙敱浜庤嚜韬疄闄呮灦鏋勫線寰€浼氬鏉傦紝鎴栬€呰€冭檻鐨勮搴︽瘮杈冨锛屼负姝ぢ?a target="_blank" href="http://weibo.com/eryk86" style="color: #0066cc;">@璁哥惁eryk鍜屾垜涓€鍚屽仛浜唄ypnos椤圭洰銆?/p>

hypnos鏄璇濅腑鐨勭潯绁烇紝瀛楅潰鎰忔€濅篃鏄笇鏈涙垜浠伐绋嬪笀鏃犻渶鍦ㄤ紤鎭椂闂村鐞嗕换浣曟晠闅溿€?-)

鍏跺伐浣滃師鐞嗙ず鎰忓涓嬶細

Redis搴旂敤鍦烘櫙(杞

Talk is cheap, show me your code! 绋嶅悗灏嗗崟鐙啓绡囧崥瀹㈢粏鑷磋涓婬ypnos鐨勫疄鐜般€?/p>

4.In Memory or not?

鍙戠幇涓€绉嶆儏鍐碉紝寮€鍙戝湪娌熼€氬悗绔祫婧愯璁$殑鏃跺€欙紝甯稿父鍥犱负涔犳儻浣跨敤鍜岄敊璇簡瑙d骇鍝佸畾浣嶇瓑鍘熷洜锛岃€屽拷瑙嗕簡瀵圭湡瀹炰娇鐢ㄧ敤鎴风殑璇勪及銆備篃璁歌繖鏄竴浠藉巻鍙叉暟鎹紝鍙湁鏈€杩戜竴澶╃殑鏁版嵁鎵嶆湁浜鸿繘琛岃闂紝鑰屾妸鍘嗗彶鏁版嵁鐨勫閲忓拰鏈€杩戜竴澶╄姹傞噺閮芥姏缁欏唴瀛樼被鐨勫瓨鍌ㄧ幇瀹炴槸闈炲父涓嶅悎鐞嗙殑銆?/p>

鎵€浠ュ綋浣犲湪绌剁珶浣跨敤浠€涔堟牱鐨勬暟鎹粨鏋勫瓨鍌ㄧ殑鏃跺€欙紝璇峰姟蹇呭厛杩涜鎴愭湰琛¢噺锛屾湁澶氬皯鏁版嵁鏄渶瑕佸瓨鍌ㄥ湪鍐呭瓨涓殑锛熸湁澶氬皯鏁版嵁鏄鐢ㄦ埛鐪熸鏈夋剰涔夌殑銆傚洜涓鸿繖鍏跺疄瀵瑰悗绔祫婧愮殑璁捐鏄嚦鍏抽噸瑕佺殑锛?G鐨勬暟鎹閲忓拰1T鐨勬暟鎹閲忓浜庤璁℃€濊矾鏄畬鍏ㄤ笉涓€鏍风殑

Plans in future?

1.slave sync鏀归€?/strong>

鍏ㄩ儴鏀归€犵嚎涓妋aster-slave鏁版嵁鍚屾鏈哄埗锛岃繖涓€鐐规垜浠€熼壌浜哅ySQL Replication鐨勬€濊矾锛屼娇鐢╮db+aof+pos浣滀负鏁版嵁鍚屾鐨勪緷鎹紝杩欓噷绠€瑕佽鏄庝负浠€涔堝畼鏂规彁渚涚殑psync娌℃湁寰堝ソ鐨勬弧瓒虫垜浠殑闇€姹傦細

鍋囪A鏈変袱涓粠搴揃鍙奀锛屽強 A `鈥?B&C锛岃繖鏃舵垜浠彂鐜癿aster A鏈嶅姟鍣ㄦ湁瀹曟満闅愭偅闇€瑕侀噸鍚垨鑰匒鑺傜偣鐩存帴瀹曟満锛岄渶瑕佸垏鎹涓烘柊鐨勪富搴擄紝濡傛灉A銆丅銆丆涓嶅叡浜玶db鍙奱of淇℃伅锛孋鍦ㄤ綔涓築鐨勪粠搴撴椂锛屼粛浼氭竻闄よ嚜韬暟鎹紝鍥犱负C鑺傜偣鍙褰曚簡鍜孉鑺傜偣鐨勫悓姝ョ姸鍐点€?/p>

鏁呮垜浠渶瑕佹湁涓€绉嶅皢A`鈥揃&C 缁撴瀯鍒囨崲鍒囨崲涓篈`鈥揃`鈥揅缁撴瀯鐨勫悓姝ユ満鍒讹紝psync铏界劧鏀寔鏂偣缁紶锛屼絾浠嶆棤娉曟敮鎸乵aster鏁呴殰鐨勫钩婊戝垏鎹€?/p>

瀹為檯涓婃垜浠凡缁忓湪鎴戜滑瀹氬埗鐨凴edis璁℃暟鏈嶅姟涓婁娇鐢ㄤ簡濡備笂鍔熻兘鐨勫悓姝ワ紝鏁堟灉闈炲父濂斤紝瑙e喅浜嗚繍缁磋礋鎷咃紝浣嗕粛闇€鍚戞墍鏈塕edis鏈嶅姟鎺ㄥ箍锛屽鏋滃彲鑳芥垜浠篃浼氬悜瀹樻柟Redis鎻愬嚭鐩稿叧sync slave鐨勬敼杩涖€?/p>

2.鏇撮€傚悎redis鐨刵ame-system Or proxy

缁嗗績鐨勫悓瀛﹀彂鐜版垜浠櫎浜嗕娇鐢―NS浣滀负鍛藉悕绯荤粺锛屼篃鍦▃ookeeper涓湁涓€浠借褰曪紝涓轰粈涔堜笉璁╃敤鎴风洿鎺ヨ闂竴涓郴缁燂紝zk鎴栬€匘NS閫夋嫨鍏朵竴鍛紵

鍏跺疄杩樻槸寰堢畝鍗曪紝鍛藉悕绯荤粺鏄釜闈炲父閲嶈鐨勭粍浠讹紝鑰宒ns鏄竴濂楁瘮杈冨畬鍠勭殑鍛藉悕绯荤粺锛屾垜浠负姝ゅ仛浜嗗緢澶氭敼杩涘拰璇曢敊锛寊k鐨勫疄鐜拌繕鏄浉瀵瑰鏉傦紝鎴戜滑杩樻病鏈夎緝寮虹殑鎶婃帶绮掑害銆傛垜浠篃鍦ㄦ€濊€冪敤浠€涔堝仛鍛藉悕绯荤粺鏇寸鍚堟垜浠渶姹傘€?/p>

3.鍚庣鏁版嵁瀛樺偍

澶у唴瀛樼殑浣跨敤鑲畾鏄竴涓噸瑕佺殑鎴愭湰浼樺寲鏂瑰悜锛宖lash鐩樺強鍒嗗竷寮忕殑瀛樺偍涔熷湪鎴戜滑鏈潵璁″垝涔嬩腑銆傦紙鍘熸枃閾炬帴锛毬?a target="_blank" href="http://www.xdata.me/?p=301" style="color: #0066cc;">Largest Redis Clusters Ever锛?/p>

浜屻€丳interest锛歊eids缁存姢涓婄櫨浜跨殑鐩稿叧鎬?/span>

聽 聽 聽 Pinterest宸茬粡鎴愪负纭呰胺鏈€鐤晠浜嬩箣涓€锛屽湪2012骞达紝浠栦滑鍩轰簬PC鐨勪笟鍔″鍔?047%锛岀Щ鍔ㄧ閲囩敤澧炲姞1698%锛屄?a target="_blank" href="http://www.forbes.com/sites/jjcolao/2013/05/08/why-is-pinterest-a-2-5-billion-company-an-early-investor-explains/" style="color: #0066cc;">璇ュ勾3鏈堝叾鐙珛璁块棶鏁伴噺鏇撮鍗囪嚦533浜?/a>銆傚湪Pinterest锛屼汉浠叧娉ㄧ殑浜嬬墿浠ョ櫨浜胯鈥斺€旀瘡涓敤鎴风晫闈㈤兘浼氭煡璇㈡煇涓猙oard鎴栬€呮槸鐢ㄦ埛鏄惁鍏虫敞鐨勮涓轰績鎴愪簡寮傚父澶嶆潅鐨勫伐绋嬮棶棰樸€傝繖涔熻Redis鑾峰緱浜嗙敤姝︿箣鍦般€傜粡杩囨暟骞寸殑鍙戝睍锛孭interest宸茬粡鎴愪负濯掍綋銆佺ぞ浜ょ瓑澶氫釜棰嗗煙鐨勪郊浣艰€咃紝鍏惰緣鐓屾垬缁╁涓嬶細

  • 鑾峰緱鐨勬帹鑽愭祦閲忛珮浜嶨oogle+銆乊ouTube鍙奓inkedIn涓夎€呯殑鎬诲拰
  • 涓嶧acebook鍙奣witter涓€璧锋垚涓烘渶娴佽鐨勪笁澶хぞ浜ょ綉缁?/li>
  • 鍙傝€働interest杩涜璐拱鐨勭敤鎴锋瘮鍏跺畠缃戠珯鏇撮珮锛埪?a target="_blank" href="http://corp.wishpond.com/pinterest-marketing-resources-for-business/15-facts-you-need-to-know-about-pinterest/" style="color: #0066cc;">鏇村璇︽儏锛?/li>

濡傛偍鎵€鎯筹紝鍩轰簬鍏剁嫭绔嬭闂暟锛孭interest鐨勯珮瑙勬ā淇冩垚浜嗕竴涓潪甯搁珮鐨処T鍩虹璁炬柦闇€姹傘€?/p>

Redis搴旂敤鍦烘櫙(杞

閫氳繃缂撳瓨鏉ヤ紭鍖栫敤鎴蜂綋楠?/strong>

杩戞棩锛孭interest宸ョ▼缁忕悊Abhi聽Khune瀵瑰叾鍏徃鐨勭敤鎴蜂綋楠岄渶姹傚強Redis鐨勪娇鐢ㄧ粡楠屄?a target="_blank" href="http://engineering.pinterest.com/post/55272557617/building-a-follower-model-from-scratch" style="color: #0066cc;">杩涜浜嗗垎浜?/a>銆傚嵆浣挎槸婊嬬敓鐨勫簲鐢ㄧ▼搴忔墦閫犺€咃紝鍦ㄥ垎鏋愮綉绔欑殑缁嗚妭涔嬪墠涔熶笉浼氱悊瑙h繖浜涚壒鎬э紝鍥犳鍏堝ぇ鑷寸殑鐞嗚В涓€涓嬩娇鐢ㄥ満鏅細棣栧厛锛屼负姣忎釜绮変笣杩涜鎻愬強鍒扮殑棰勬鏌ワ紱鍏舵锛孶I灏嗗噯纭殑鏄剧ず鐢ㄦ埛鐨勭矇涓濆強鍏虫敞鍒楄〃鍒嗛〉銆傞珮鏁堢殑鎵ц杩欎簺鎿嶄綔锛屾瘡娆$偣鍑婚兘闇€瑕侀潪甯搁珮鐨勬€ц兘鏋舵瀯銆?/p>

涓嶈兘鍏嶄織锛孭interest鐨勮蒋浠跺伐绋嬪笀鍙婃灦鏋勫笀宸茬粡浣跨敤浜哅ySQL鍙妋emcache锛屼絾鏄紦瀛樿В鍐虫柟妗堜粛鐒惰揪鍒颁簡浠栦滑鐨勭摱棰堬紱鍥犳涓轰簡鎷ユ湁鏇村ソ鐨勭敤鎴蜂綋楠岋紝缂撳瓨蹇呴』琚墿鍏呫€傝€屽湪瀹為檯鎿嶄綔杩囩▼涓紝宸ョ▼鍥㈤槦宸茬劧鍙戠幇缂撳瓨鍙湁褰撶敤鎴穝ub-graph宸茬粡鍦ㄧ紦瀛樹腑鏃舵墠浼氳捣鍒颁綔鐢ㄣ€傚洜姝ゃ€備换浣曚娇鐢ㄨ繖涓郴缁熺殑浜洪兘闇€瑕佽缂撳瓨锛岃繖灏卞鑷翠簡鏁翠釜鍥剧殑缂撳瓨銆傚悓鏃讹紝鏈€甯歌鐨勬煡璇⑩€滅敤鎴稟鏄惁鍏虫敞浜嗙敤鎴稡鈥濈殑绛旀缁忓父鏄惁瀹氱殑锛岀劧鑰岃繖鍗磋浣滀负浜嗙紦瀛樹涪澶憋紝浠庤€屼績鎴愪竴涓暟鎹簱鏌ヨ锛屽洜姝や粬浠渶瑕佷竴涓柊鐨勬柟娉曟潵鎵╁睍缂撳瓨銆傛渶缁堬紝浠栦滑鍥㈤槦鍐冲畾浣跨敤Redis鏉ュ瓨鍌ㄦ暣涓浘锛岀敤浠ユ湇鍔′紬澶氱殑鍒楄〃銆?/p>

浣跨敤Redis瀛樺偍澶ч噺鐨凱interest鍒楄〃

Pinterest浣跨敤浜哛edis浣滀负瑙e喅鏂规锛屽苟灏嗘€ц兘鎺ㄨ嚦浜嗗唴瀛樻暟鎹簱绛夌骇锛屼负鐢ㄦ埛淇濆瓨澶氱绫诲瀷鍒楄〃锛?/p>

  • 鍏虫敞鑰呭垪琛?/li>
  • 浣犳墍鍏虫敞鐨刡oard鍒楄〃
  • 绮変笣鍒楄〃
  • 鍏虫敞浣燽oard鐨勭敤鎴峰垪琛?/li>
  • 鏌愪釜鐢ㄦ埛涓璪oard涓綘娌℃湁鍏虫敞鐨勫垪琛?/li>
  • 姣忎釜board鐨勫叧娉ㄨ€呭強闈炲叧娉ㄨ€?/li>

Redis涓哄叾7000涓囩敤鎴峰瓨鍌ㄤ簡浠ヤ笂鐨勬墍鏈夊垪琛紝鏈川涓婅鍙互璇存槸鍌ㄥ瓨浜嗘墍鏈夌矇涓濆浘锛岄€氳繃鐢ㄦ埛ID鍒嗙墖銆傞壌浜庝綘鍙互閫氳繃绫诲瀷鏉ユ煡鐪嬩互涓婂垪琛ㄧ殑鏁版嵁锛屽垎鏋愭瑕佷俊鎭鐢ㄧ湅璧锋潵鏇村儚浜嬪姟鐨勭郴缁熷偍瀛樺強璁块棶銆侾interest褰撲笅鐨勭敤鎴穕ike琚檺鍒朵负10涓囷紝鍒濈暐杩涜缁熻锛氬鏋滄瘡涓敤鎴峰叧娉?5涓猙oard锛屽皢浼氬湪鐢ㄦ埛鍙奲oard闂翠骇鐢?7.5浜跨殑鍏崇郴銆傚悓鏃舵洿鍔犻噸瑕佺殑鏄紝杩欎簺鍏崇郴闅忕潃绯荤粺鐨勪娇鐢ㄦ瘡澶╅兘浼氬鍔犮€?/p>

Pinterest鐨凴eids鏋舵瀯鍙婅繍钀?/strong>

閫氳繃Pinterest鐨勪竴涓垱濮嬩汉浜嗚В鍒帮紝Pinterest寮€濮嬩娇鐢≒ython鍙婅鍒剁殑Django缂栧啓搴旂敤绋嬪簭锛屽苟涓€鐩存寔缁埌鍏舵嫢鏈?800涓囩敤鎴风骇鏃?10TB鐢ㄦ埛鏁版嵁鐨勬椂鍊欍€傝櫧鐒朵娇鐢ㄤ簡澶氫釜瀛樺偍瀵规暟鎹繘琛屽偍瀛橈紝宸ョ▼甯堟牴鎹敤鎴穒d浣跨敤浜?192涓櫄鎷熷垎鐗囷紝姣忎釜鍒嗙墖閮借繍琛屽湪涓€涓猂edis聽DB涔嬩笂锛屽悓鏃?涓猂edis瀹炰緥灏嗚繍琛屽涓猂edis聽DB銆備负浜嗗CPU鏍稿績鐨勫厖鍒嗕娇鐢紝鍚屼竴鍙颁富鏈轰笂鍚屾椂浣跨敤澶氱嚎绋嬪拰鍗曠嚎绋婻edis瀹炰緥銆?/p>

閴翠簬鏁翠釜鏁版嵁闆嗚繍琛屽湪鍐呭瓨褰撲腑锛孯edis鍦ˋmazon聽EBS涓婂姣忕浼犺緭杩涙潵鐨勫啓鍏ラ兘浼氳繘琛屾寔涔呭寲銆傛墿灞曚富瑕侀€氳繃涓や釜鏂归潰杩涜锛氱涓€锛屼繚鎸?0%鐨勫埄鐢ㄧ巼锛岄€氳繃涓讳粠杞崲锛屾満鍣ㄤ笂杩愯鐨凴edis瀹炰緥涓€鍗婁細杞瘧鍒颁竴涓柊鏈哄櫒涓婏紱绗簩锛屾墿灞曡妭鐐瑰拰鍒嗙墖銆傛暣涓猂edis闆嗙兢閮戒細浣跨敤涓€涓富浠庨厤缃紝浠庨儴鍒嗗皢琚綋鍋氫竴涓儹澶囦唤銆備竴鏃︿富鑺傜偣澶辫触锛屼粠閮ㄥ垎浼氱珛鍒诲畬鎴愪富鐨勮浆鎹紝鍚屾椂涓€涓柊鐨勪粠閮ㄥ垎灏嗕細琚坊鍔狅紝ZooKeeper灏嗗畬鎴愭暣涓繃绋嬨€傚悓鏃朵粬浠瘡涓皬鏃堕兘浼氬湪Amazon聽S3涓婅繍琛孊Gsave鍋氭洿鎸佷箙鐨勫偍瀛樷€斺€旇繖椤筊eids鎿嶄綔浼氬湪鍚庣杩涜锛屼箣鍚嶱interest浼氫娇鐢ㄨ繖浜涙暟鎹仛MapReduce鍜屽垎鏋愪綔涓氥€傦紙鏇村鍐呭瑙佸師鏂囷級

Redis搴旂敤鍦烘櫙(杞

涓夈€乂iacom锛歊edis鍦ㄧ郴缁熶腑鐨勭敤渚嬬洏鐐?/span>

Viacom鏄叏鐞冩渶澶х殑浼犲獟闆嗕綋涔嬩竴锛屽悓鏃朵篃閬亣浜嗗綋涓嬫渶澶х殑鏁版嵁闅鹃涔嬩竴锛氬浣曞鐞嗘棩鐩婂墽澧炵殑鍔ㄦ€佽棰戝唴瀹广€?/p>

鐫€鐪艰繖涓€鎸戞垬鐨勪笂鍗囪秼鍔匡紝鎴戜滑浼氬彂鐜帮細2010骞翠笘鐣屼笂鎵€鏈夋暟鎹綋绉揪鍒癦B绾?/a>锛岃€屽崟鍗?012杩欎竴骞达紝浜掕仈缃戜骇鐢熺殑鏁版嵁灏卞鍔犱簡2.8涓猌B锛屽叾涓ぇ閮ㄥ垎鐨勬暟鎹兘鏄潪缁撴瀯鍖栫殑锛屽寘鎷簡瑙嗛鍜屽浘鐗囥€?/p>

瑕嗙洊MVN锛堜互鍓嶇О涓篗TV聽Networks銆丳aramount鍙夿ET锛夛紝Viacom鏄釜鍚嶅壇鍏跺疄鐨勪紶濯掑法澶达紝鏀寔浼楀浜烘皵绔欑偣锛屽叾涓寘鎷琓he聽Daily聽Show銆乷sh.0銆丼outh聽Park聽Studios銆丟ameTrailers.com绛夈€備綔涓哄獟浣撳叕鍙革紝杩欎簺缃戠珯涓婄殑鏂囨。銆佸浘鐗囥€佽棰戠煭鐗囬兘鍦ㄦ棤鏃舵棤鍒荤殑鏇存柊銆傞暱璇濈煭璇达紝涓嬮潰灏辫繘鍏iacom楂樼骇鏋舵瀯甯圡ichael聽Venezia聽鍒嗕韩鐨凴edis瀹炶返锛?/p>

Viacom鐨勭綉绔欐灦鏋勮儗鏅?/strong>

瀵逛簬Viacom锛屾í璺ㄥ涓珯鐐逛紶鎾唴瀹硅蹇呴』涓撴敞浜庤妯$殑闇€姹傦紝鍚屾椂涓轰簡灏嗗唴瀹圭珶鍙兘蹇殑浼犳挱鍒扮浉搴旂敤鎴凤紝浠栦滑杩樺繀椤昏仛鐒﹀唴瀹逛箣闂寸殑鍏崇郴銆傜劧鑰屽嵆浣縏he聽Daily聽Show銆丯ickelodeon銆丼pike鎴栬€呮槸VH1聽杩欎簺鍗曠嫭鐨勭綉绔欎笂锛屾棩骞冲潎PV閮藉彲浠ヨ揪鍒板崈涓囷紝宄板€兼椂娴侀噺鏇翠細杈惧埌骞冲潎鍊肩殑20-30鍊嶃€傚悓鏃跺熀浜庡瀹炴椂鐨勯渶姹傦紝鍔ㄦ€佺殑瑙勬ā鍙婇€熷害宸叉垚涓烘灦鏋勭殑鍩虹涔嬩竴銆?/p>

闄ゅ幓鍔ㄦ€佽妯′箣澶栵紝鏈嶅姟杩樺繀椤诲熀浜庣敤鎴锋鍦ㄦ祻瑙堢殑瑙嗛鎴栬€呮槸鍦扮悊浣嶇疆鏉ユ帹娴嬬敤鎴风殑鍠滃ソ銆傛瘮濡傝锛屾煇涓〉闈㈠彲鑳戒細灏嗕竴涓嫭绔嬬殑瑙嗛鐗囨涓庢湰鍦扮殑淇冮攢锛岃棰戠郴鍒楃殑棰濆閮ㄥ垎锛岀敋鑷虫槸鐩稿叧瑙嗛鑱旂郴璧锋潵銆備负浜嗚兘璁╃敤鎴疯兘鍦ㄧ綉绔欎笂鍋滅暀鏇撮暱鐨勬椂闂达紝浠栦滑寤虹珛浜嗕竴涓兘鍩轰簬璇︾粏鍏冩暟鎹嚜鍔ㄥ缓绔嬮〉闈㈢殑杞欢寮曟搸锛岃繖涓紩鎿庡彲浠ユ牴鎹敤鎴峰綋涓嬪叴瓒f帹鑽愰澶栫殑鍐呭銆傞壌浜庣敤浜庡叴瓒g殑闅忔椂鏀瑰彉锛屾暟鎹殑绫诲瀷闈炲父骞挎硾鈥斺€旂被浼糶raph-like锛屽疄闄呬笂鍋氱殑鏄ぇ閲忕殑join銆?/p>

杩欐牱鍋氭湁鍒╀簬鍑忓皯绫讳技瑙嗛鐨勫ぇ浣撶Н鏂囦欢鍓湰鏁帮紝姣斿鏁版嵁瀛樺偍涓竴涓嫭绔嬬殑璁板綍鏄疭outhpark鐗囨鈥淐artman聽gets聽an聽Anal聽Probe鈥濓紝杩欎釜鐗囨鍙兘涔熶細鍑虹幇鍦ㄥ痉璇殑缃戠珯涓娿€傝櫧鐒惰棰戞槸涓€鏍风殑锛屼絾鏄嫳璇敤鎴锋悳绱㈢殑鍙兘灏辨槸鍙︿竴涓笉鍚岀殑璇嶈銆傚厓鏁版嵁鐨勫壇鏈浆鎹㈡垚鎼滅储缁撴灉锛屽苟鎸囧悜鐩稿悓鐨勮棰戙€傚洜姝ゅ湪缇庡浗鐢ㄦ埛鎼滅储鐪熷疄鏍囬鐨勬儏鍐典笅锛屽痉鍥芥祻瑙堣€呭彲鑳戒細浣跨敤杞瘧鐨勬爣棰樷€斺€斿痉鍥界綉绔欎笂鐨勨€淐artman聽und聽die聽Analsonde鈥濄€?/p>

杩欎簺鍏冩暟鎹鐩栦簡鍏跺畠璁板綍鎴栬€呮槸瀵硅薄锛屽悓鏃惰繕鍙互鏍规嵁浣跨敤鐜鏉ユ敼鍙樺唴瀹癸紝閫氳繃涓嶅悓鐨勮鍒欓泦鏉ラ檺鍒朵笉鍚屽湴鐞嗕綅缃垨鑰呮槸璁惧璇锋眰鐨勫唴瀹广€?/p>

Viacom鐨勫疄鐜版柟娉?/strong>

灏界璁稿鏈烘瀯閫氳繃浣跨敤ORM鍙婁紶缁熷叧绯诲瀷鏁版嵁搴撴潵瑙e喅杩欎釜闂锛孷iacom鍗翠娇鐢ㄤ簡涓€涓骏鐒朵笉鍚岀殑鏂规硶銆?/p>

鏈川涓婏紝浠栦滑瀹屽叏鎵挎媴涓嶄簡瀵规暟鎹簱鐨勭洿鎺ヨ闂€傞鍏堬紝浠栦滑澶勭悊鐨勫ぇ閮ㄥ垎閮芥槸娴佹暟鎹紝浠栦滑鍋忓悜浜庝娇鐢ˋkamai浠庡湴鐞嗕笂鏉ュ垎閰嶅唴瀹广€傚叾娆★紝鍩轰簬椤甸潰鐨勫鏉傛€у彲鑳戒細鍙栦笂涓囦釜瀵硅薄銆傚彇濡傛澶氱殑鏁版嵁鏄剧劧浼氬奖鍝嶅埌鎬ц兘锛屽洜姝SON鍦?涓暟鎹湇鍔′腑鎶曞叆浜嗕娇鐢ㄣ€傚綋鐒讹紝杩欎簺JSON瀵硅薄鐨勭紦瀛樺皢鐩存帴褰卞搷鍒扮綉绔欐€ц兘銆傚悓鏃讹紝褰撳唴瀹规垨鑰呮槸鍐呭涔嬮棿鐨勫叧绯诲彂鐢熸敼鍙樻椂锛岀紦瀛樿繕闇€瑕佸姩鎬佺殑杩涜鏇存柊銆?/p>

Viacom渚濋潬瀵硅薄鍩哄厓鍜岃秴绫昏В鍐宠繖涓棶棰橈紝缁х画浠outh聽Park涓轰緥锛氫竴涓鏈夌殑鈥渆pisode鈥濈被鍖呭惈浜嗘墍鏈夎鐗囨鐩稿叧淇℃伅锛屼竴涓€渟uper聽object鈥濆皢鏈夊姪浜庡彂鐜板疄闄呯殑瑙嗛瀵硅薄銆傝秴绫昏繖涓€濇兂纭疄闈炲父鏈夌泭浜庡缓璁句綆寤惰繜椤甸潰鐨勮嚜鍔ㄥ缓璁撅紝杩欎簺瓒呯被鍙互甯姪鍒板熀鍏冨璞″埌缂撳瓨鐨勬槧灏勫強淇濆瓨銆?/p>

Viacom涓轰粈涔堣浣跨敤Redis

姣忓綋Viacom涓婁紶涓€涓棰戠墖娈碉紝绯荤粺灏嗗缓绔嬩竴涓鏈夌殑瀵硅薄锛屽苟浜?涓秴绫诲叧鑱斻€傛瘡涓€娆′慨鏀癸紝浠栦滑閮介渶瑕侀噸浼扮鏈夊璞$殑姣忎釜鏀瑰彉锛屽苟鏇存柊鎵€鏈夊鍚堝璞°€傚悓鏃讹紝绯荤粺杩橀渶瑕佹棤鏁圓kamail涓殑URL璇锋眰銆傜郴缁熺幇鏈夋灦鏋勭殑缁勫悎鍙婃洿鏁忔嵎鐨勭鐞嗘柟娉曢渶姹傚皢Viacom鎺ㄥ悜浜哛edis銆?/p>

鍩轰簬Viacom涓昏鍩轰簬PHP锛屾墍浠ヨ繖涓В鍐虫柟妗堝繀椤绘敮鎸丳HP銆備粬浠鍏堥€夋嫨浜唌emcached鍋氬璞″瓨鍌紝浣嗘槸瀹冨苟涓嶈兘寰堝ソ鐨勬敮鎸乭ashmap锛涘悓鏃朵粬浠繕闇€瑕佷竴涓洿鏈夋晥鐨勮繘琛屾棤鏁堟楠ょ殑閲嶄及锛屽嵆鏇村ソ鐨勭悊瑙e唴瀹圭殑渚濊禆鎬с€傛湰璐ㄤ笂璇达紝浠栦滑闇€瑕佹椂鍒昏窡杩涙棤鏁堟楠や腑鐨勪緷璧栨€ф敼鍙樸€傚洜姝や粬浠€夋嫨浜哛edis鍙奝redis鐨勭粍鍚堟潵瑙e喅杩欎釜闂銆?/p>

浠栦滑鍥㈤槦浣跨敤Redis缁檚outhparkstudios.com鍜宼hedailyshow.com涓や釜缃戠珯寤鸿渚濊禆鎬у浘锛屽湪鍙栧緱浜嗗緢澶х殑鎴愬姛鍚庝粬浠紑濮嬬潃鐪糝edis鍏跺畠閫傚悎鍦烘櫙銆?/p>

Redis鐨勫叾瀹冧娇鐢ㄥ満鏅?/strong>

鏄捐€屾槗瑙侊紝濡傛灉鏈変汉浣跨敤Redis鏉ュ缓璁句緷璧栨€у浘锛岄偅涔堜娇鐢ㄥ畠鏉ュ仛瀵硅薄澶勭悊涔熸槸璇村緱閫氱殑銆傚悓鏍凤紝杩欎篃鎴愪簡鏋舵瀯鍥㈤槦涓篟edis閫夋嫨鐨勭浜屼娇鐢ㄥ満鏅€俁edis鐨勫鍒跺強鎸佷箙鍖栫壒鎬у悓鏃朵篃寰佹湇浜哣iacom鐨勮繍钀ュ洟闃燂紝鍥犳鍦ㄥ嚑涓紑鍙戝懆鏈熷悗锛孯edis鎴愪负浠栦滑缃戠珯鐨勪富瑕佹暟鎹強渚濊禆鎬у偍瀛樸€?/p>

鍚庝袱涓敤渚嬪垯鏄涓鸿拷韪強娴忚璁℃暟鐨勭紦鍐诧紝鏀瑰彉鍚庣殑鏋舵瀯鏄疪edis姣忓嚑鍒嗛挓鍚慚ySQL涓偍瀛樹竴娆★紝鑰屾祻瑙堣鏁板垯閫氳繃Redis杩涜瀛樺偍鍙婅鏁般€傚悓鏃禦edis杩樿鐢ㄦ潵鍋氫汉姘旂殑璁$畻锛屼竴涓熀浜庤闂暟鍙婅闂椂闂寸殑寰楀垎绯荤粺鈥斺€斿鏋滄煇涓棰戞渶杩戣璁块棶鐨勬鏁拌秺澶氾紝瀹冪殑浜烘皵灏辫秺楂樸€傚湪濡傛澶氬唴瀹逛笂姣忛殧10-15鍒嗛挓鍋氫竴娆¤绠楃粷瀵逛笉鏄被浼糓ySQL杩欐牱浼犵粺鍏崇郴鍨嬫暟鎹簱鐨勫己椤癸紝Viacom浣跨敤Redis鐨勭悊鐢变篃闈炲父绠€鍗曗€斺€斿湪1涓瓨鍌ㄦ祻瑙堜俊鎭殑Redis瀹炰緥涓婅繍琛孡ua鎵瑰鐞嗕綔涓氾紝璁$畻鍑烘墍鏈夌殑寰楀垎琛ㄣ€備俊鎭鎷疯礉鍒板彟涓€涓猂edis瀹炰緥涓婏紝鐢ㄤ互鏀寔鐩稿叧鐨勪骇鍝佹煡璇€傚悓鏃惰繕鍦∕ySQL涓婂仛浜嗗彟涓€涓浠斤紝鐢ㄤ互浠ュ悗鐨勫垎鏋愶紝杩欑缁勫悎浼氬皢杩欎釜杩囩▼鑰楄垂鐨勬椂闂撮檷浣?0鍊嶃€?/p>

Viacom杩樹娇鐢≧edis瀛樺偍涓€姝ヤ綔涓氫俊鎭紝杩欎簺淇℃伅琚彃鍏ヤ竴涓垪琛ㄤ腑锛屽伐浣滀汉鍛樺垯浣跨敤BLPOP鍛戒护琛屽湪闃熷垪涓姄鍙栭《绔殑浠诲姟銆傚悓鏃秡sets琚敤浜庝粠浼楀绀句氦缃戠粶锛堟瘮濡俆witter鍙奣umblr锛変笂缁煎悎鍐呭锛孷iacom閫氳繃Brightcove瑙嗛鎾斁鍣ㄦ潵鍚屾澶氫釜鍐呭绠$悊绯荤粺銆?/p>

妯法杩欎簺鐢ㄤ緥锛屽嚑涔庢墍鏈夌殑Redis鍛戒护閮借浣跨敤鈥斺€攕ets銆乴ists銆亃lists銆乭ashmaps銆乻cripts銆乧ounters绛夈€傚悓鏃讹紝Redis涔熸垚涓篤iacom鍙墿灞曟灦鏋勪腑涓嶅彲鎴栫己鐨勪竴鐜€?/p>