1. Redisæ¯ä»ä¹
è¿ä¸ªé®é¢çç»æå½±åäºæ们æä¹ç¨Redisãå¦æä½ è®¤ä¸ºRedisæ¯ä¸ä¸ªkey value store, é£å¯è½ä¼ç¨å®æ¥ä»£æ¿MySQLï¼å¦æ认为å®æ¯ä¸ä¸ªå¯ä»¥æä¹
åçcache, å¯è½åªæ¯å®ä¿åä¸äºé¢ç¹è®¿é®ç临æ¶æ°æ®ãRedisæ¯REmote DIctionary Serverç缩åï¼å¨Rediså¨å®æ¹ç½ç«ççå¯æ é¢æ¯A persistent key-value database with built-in net interface written in ANSI-C for Posix systemsï¼è¿ä¸ªå®ä¹ååkey value storeãè¿æä¸äºçæ³å认为Redisæ¯ä¸ä¸ªmemory databaseï¼å 为å®çé«æ§è½é½æ¯åºäºå
åæä½çåºç¡ãå¦å¤ä¸äºäººå认为Redisæ¯ä¸ä¸ªdata structure serverï¼å 为Redisæ¯æå¤æçæ°æ®ç¹æ§ï¼æ¯å¦List, Setçã对Redisçä½ç¨çä¸å解读å³å®äºä½ 对Redisç使ç¨æ¹å¼ã
äºèç½æ°æ®ç®ååºæ¬ä½¿ç¨ä¸¤ç§æ¹å¼æ¥åå¨ï¼å
³ç³»æ°æ®åºæè
key valueãä½æ¯è¿äºäºèç½ä¸å¡æ¬èº«å¹¶ä¸å±äºè¿ä¸¤ç§æ°æ®ç±»åï¼æ¯å¦ç¨æ·å¨ç¤¾ä¼åå¹³å°ä¸çå
³ç³»ï¼å®æ¯ä¸ä¸ªlistï¼å¦æè¦ç¨å
³ç³»æ°æ®åºåå¨å°±éè¦è½¬æ¢æä¸ç§å¤è¡è®°å½çå½¢å¼ï¼è¿ç§å½¢å¼åå¨å¾å¤åä½æ°æ®ï¼æ¯ä¸è¡éè¦åå¨ä¸äºéå¤ä¿¡æ¯ãå¦æç¨key valueåå¨åä¿®æ¹åå é¤æ¯è¾éº»ç¦ï¼éè¦å°å
¨é¨æ°æ®è¯»åºååå
¥ãRediså¨å
åä¸è®¾è®¡äºåç§æ°æ®ç±»åï¼è®©ä¸å¡è½å¤é«éååç访é®è¿äºæ°æ®ç»æï¼å¹¶ä¸ä¸éè¦å
³å¿æä¹
åå¨çé®é¢ï¼ä»æ¶æä¸è§£å³äºåé¢ä¸¤ç§åå¨éè¦èµ°ä¸äºå¼¯è·¯çé®é¢ã
2. Redisä¸å¯è½æ¯Memcacheå¿«
å¾å¤å¼åè
é½è®¤ä¸ºRedisä¸å¯è½æ¯Memcachedå¿«ï¼Memcachedå®å
¨åºäºå
åï¼èRediså
·ææä¹
åä¿åç¹æ§ï¼å³ä½¿æ¯å¼æ¥çï¼Redisä¹ä¸å¯è½æ¯Memcachedå¿«ãä½æ¯æµè¯ç»æåºæ¬æ¯Rediså ç»å¯¹ä¼å¿ãä¸ç´å¨æèè¿ä¸ªåå ï¼ç®åæ³å°çåå æè¿å æ¹é¢ã
LibeventãåMemcachedä¸åï¼Redis并没æéæ©libeventãLibevent为äºè¿åéç¨æ§é æ代ç åºå¤§(ç®åRedis代ç è¿ä¸å°libeventç1/3)åçºç²äºå¨ç¹å®å¹³å°çä¸å°æ§è½ãRedisç¨libeventä¸ä¸¤ä¸ªæ件修æ¹å®ç°äºèªå·±çepoll event loop(4)ãä¸çä¸å°å¼åè
ä¹å»ºè®®Redis使ç¨å¦å¤ä¸ä¸ªlibeventé«æ§è½æ¿ä»£libevï¼ä½æ¯ä½è
è¿æ¯åæRedisåºè¯¥å°å·§å¹¶å»ä¾èµçæè·¯ãä¸ä¸ªå°è±¡æ·±å»çç»èæ¯ç¼è¯Redisä¹å并ä¸éè¦æ§è¡./configureã
CASé®é¢ãCASæ¯Memcachedä¸æ¯è¾æ¹ä¾¿çä¸ç§é²æ¢ç«äºä¿®æ¹èµæºçæ¹æ³ãCASå®ç°éè¦ä¸ºæ¯ä¸ªcache key设置ä¸ä¸ªéèçcas tokenï¼casç¸å½valueçæ¬å·ï¼æ¯æ¬¡setä¼tokenéè¦éå¢ï¼å æ¤å¸¦æ¥CPUåå
åçåéå¼éï¼è½ç¶è¿äºå¼éå¾å°ï¼ä½æ¯å°åæº10G+ cache以åQPSä¸ä¸ä¹åè¿äºå¼éå°±ä¼ç»åæ¹ç¸å¯¹å¸¦æ¥ä¸äºç»å¾®æ§è½å·®å«(5)ã
3. åå°Redisçåæ¾æ°æ®å¿
é¡»æ¯ç©çå
åå°
Redisçæ°æ®å
¨é¨æ¾å¨å
å带æ¥äºé«éçæ§è½ï¼ä½æ¯ä¹å¸¦æ¥ä¸äºä¸åçä¹å¤ãæ¯å¦ä¸ä¸ªä¸åç½ç«æ100ä¸æ³¨åç¨æ·ï¼å¦æè¿äºèµæè¦ç¨Redisæ¥åå¨ï¼å
åç容éå¿
é¡»è½å¤å®¹çº³è¿100ä¸ç¨æ·ãä½æ¯ä¸å¡å®é
æ
åµæ¯100ä¸ç¨æ·åªæ5ä¸æ´»è·ç¨æ·ï¼1å¨æ¥è®¿é®è¿1次çä¹åªæ15ä¸ç¨æ·ï¼å æ¤å
¨é¨100ä¸ç¨æ·çæ°æ®é½æ¾å¨å
åæä¸åçä¹å¤ï¼RAMéè¦ä¸ºå·æ°æ®ä¹°åã
è¿è·æä½ç³»ç»é常ç¸ä¼¼ï¼æä½ç³»ç»ææåºç¨è®¿é®çæ°æ®é½å¨å
åï¼ä½æ¯å¦æç©çå
å容纳ä¸ä¸æ°çæ°æ®ï¼æä½ç³»ç»ä¼æºè½å°é¨åé¿æ没æ访é®çæ°æ®äº¤æ¢å°ç£çï¼ä¸ºæ°çåºç¨çåºç©ºé´ãç°ä»£æä½ç³»ç»ç»åºç¨æä¾ç并ä¸æ¯ç©çå
åï¼èæ¯èæå
å(Virtual Memory)çæ¦å¿µã
åºäºç¸åçèèï¼Redis 2.0ä¹å¢å äºVMç¹æ§ã让Redisæ°æ®å®¹éçªç ´äºç©çå
åçéå¶ã并å®ç°äºæ°æ®å·çå离ã
4. RedisçVMå®ç°æ¯éå¤é è½®å
RedisçVMä¾ç
§ä¹åçepollå®ç°æè·¯ä¾æ§æ¯èªå·±å®ç°ãä½æ¯å¨åé¢æä½ç³»ç»çä»ç»æå°OSä¹å¯ä»¥èªå¨å¸®ç¨åºå®ç°å·çæ°æ®å离ï¼Redisåªéè¦OSç³è¯·ä¸å大å
åï¼OSä¼èªå¨å°çæ°æ®æ¾å
¥ç©çå
åï¼å·æ°æ®äº¤æ¢å°ç¡¬çï¼å¦å¤ä¸ä¸ªç¥åçâç解äºç°ä»£æä½ç³»ç»(3)âçVarnishå°±æ¯è¿æ ·å®ç°ï¼ä¹åå¾äºé常æåçææã
ä½è
antirezå¨è§£é为ä»ä¹è¦èªå·±å®ç°VMä¸æå°å 个åå (6)ã主è¦OSçVMæ¢å
¥æ¢åºæ¯åºäºPageæ¦å¿µï¼æ¯å¦OS VM1个Pageæ¯4K, 4Kä¸åªè¦è¿æä¸ä¸ªå
ç´ å³ä½¿åªæ1个åè被访é®ï¼è¿ä¸ªé¡µä¹ä¸ä¼è¢«SWAP, æ¢å
¥ä¹åæ ·éçï¼è¯»å°ä¸ä¸ªåèå¯è½ä¼æ¢å
¥4Kæ ç¨çå
åãèRedisèªå·±å®ç°åå¯ä»¥è¾¾å°æ§å¶æ¢å
¥çç²åº¦ãå¦å¤è®¿é®æä½ç³»ç»SWAPå
ååºåæ¶blockè¿ç¨ï¼ä¹æ¯å¯¼è´Redisè¦èªå·±å®ç°VMåå ä¹ä¸ã
5. ç¨get/setæ¹å¼ä½¿ç¨Redis
ä½ä¸ºä¸ä¸ªkey valueåå¨ï¼å¾å¤å¼åè
èªç¶ç使ç¨set/getæ¹å¼æ¥ä½¿ç¨Redisï¼å®é
ä¸è¿å¹¶ä¸æ¯æä¼åç使ç¨æ¹æ³ãå°¤å
¶å¨æªå¯ç¨VMæ
åµä¸ï¼Rediså
¨é¨æ°æ®éè¦æ¾å
¥å
åï¼è约å
åå°¤å
¶éè¦ã
åå¦ä¸ä¸ªkey-valueåå
éè¦æå°å ç¨512åèï¼å³ä½¿åªåä¸ä¸ªåèä¹å äº512åèãè¿æ¶åå°±æä¸ä¸ªè®¾è®¡æ¨¡å¼ï¼å¯ä»¥ækeyå¤ç¨ï¼å 个key-valueæ¾å
¥ä¸ä¸ªkeyä¸ï¼valueåä½ä¸ºä¸ä¸ªsetåå
¥ï¼è¿æ ·åæ ·512åèå°±ä¼åæ¾10-100åç容éã
è¿å°±æ¯ä¸ºäºè约å
åï¼å»ºè®®ä½¿ç¨hashsetèä¸æ¯set/getçæ¹å¼æ¥ä½¿ç¨Redisï¼è¯¦ç»æ¹æ³è§åèæç®(7)ã
6. 使ç¨aof代æ¿snapshot
Redisæ两ç§åå¨æ¹å¼ï¼é»è®¤æ¯snapshotæ¹å¼ï¼å®ç°æ¹æ³æ¯å®æ¶å°å
åçå¿«ç
§(snapshot)æä¹
åå°ç¡¬çï¼è¿ç§æ¹æ³ç¼ºç¹æ¯æä¹
åä¹åå¦æåºç°crashåä¼ä¸¢å¤±ä¸æ®µæ°æ®ãå æ¤å¨å®ç¾ä¸»ä¹è
çæ¨å¨ä¸ä½è
å¢å äºaofæ¹å¼ãaofå³append only modeï¼å¨åå
¥å
åæ°æ®çåæ¶å°æä½å½ä»¤ä¿åå°æ¥å¿æ件ï¼å¨ä¸ä¸ªå¹¶åæ´æ¹ä¸ä¸çç³»ç»ä¸ï¼å½ä»¤æ¥å¿æ¯ä¸ä¸ªé常åºå¤§çæ°æ®ï¼ç®¡çç»´æ¤ææ¬é常é«ï¼æ¢å¤é建æ¶é´ä¼é常é¿ï¼è¿æ ·å¯¼è´å¤±å»aofé«å¯ç¨æ§æ¬æãå¦å¤æ´éè¦çæ¯Redisæ¯ä¸ä¸ªå
åæ°æ®ç»æ模åï¼ææçä¼å¿é½æ¯å»ºç«å¨å¯¹å
åå¤ææ°æ®ç»æé«æçååæä½ä¸ï¼è¿æ ·å°±çåºaofæ¯ä¸ä¸ªé常ä¸åè°çé¨åã
å
¶å®aofç®ç主è¦æ¯æ°æ®å¯é æ§åé«å¯ç¨æ§ï¼å¨Redisä¸æå¦å¤ä¸ç§æ¹æ³æ¥è¾¾å°ç®çï¼Replicationãç±äºRedisçé«æ§è½ï¼å¤å¶åºæ¬æ²¡æ延è¿ãè¿æ ·è¾¾å°äºé²æ¢åç¹æ
éåå®ç°äºé«å¯ç¨ã
å°ç»
è¦æ³æå使ç¨ä¸ç§äº§åï¼æ们éè¦æ·±å
¥äºè§£å®çç¹æ§ãRedisæ§è½çªåºï¼å¦æè½å¤çç»ç驾é©ï¼å¯¹å½å
å¾å¤å¤§ååºç¨å
·æå¾å¤§å¸®å©ã
温馨提示:答案为网友推荐,仅供参考