Ò»¡¢Ö÷´Ó¸´ÖƼܹ¹¼ò½é

ͨ¹ýÇ°Ãæ¼¸ÆªµÄ½éÉÜÖУ¬ÎÒÃǶ¼ÊÇÔÚµ¥»úÉÏʹÓÃRedis½øÐÐÏà¹ØµÄʵ¼ù²Ù×÷£¬´Ó±¾ÆªÆð£¬ÎÒÃǽ«³õ²½Ì½Ë÷Ò»ÏÂRedisµÄ¼¯Èº£¬¶ø¼¯ÈºÖÐ×î¾µäµÄ¼Ü¹¹±ãÊÇÖ÷´Ó¸´ÖƼܹ¹¡£ÄÇô£¬ÎÒÃÇÊ×ÏÈÀ´Á˽âÒ»ÏÂÉñÂíÊÇÖ÷´Ó¸´ÖƼܹ¹£¿
1.1 Ô´ÓÚ¹ØÏµÊý¾Ý¿âµÄ¶Áд·ÖÀë
Ëæ×ÅÍøÕ¾ÒµÎñµÄ²»¶Ï·¢Õ¹£¬Óû§Á¿µÄ²»¶ÏÔö¼Ó£¬Êý¾ÝÁ¿Ò²³É±¶µÄÔö³¤£¬Êý¾Ý¿âµÄ·ÃÎÊÁ¿Ò²³ÊÏßÐÔµØÔö³¤¡£ÌرðÊÇÔÚÓû§·ÃÎʸ߷åÆÚ¼ä£¬²¢·¢·ÃÎÊÁ¿Í»È»Ôö´ó£¬Êý¾Ý¿âµÄ¸ºÔØÑ¹Á¦Ò²»áÔö´ó£¬Èç¹û¼Ü¹¹·½°¸²»¹»½¡×³£¬ÄÇôÊý¾Ý¿â·þÎñÆ÷ºÜÓпÉÄÜÔڸ߲¢·¢·ÃÎʸºÔØÑ¹Á¦ÏÂå´»ú£¬Ôì³ÉÊý¾Ý·ÃÎÊ·þÎñµÄʧЧ£¬´Ó¶øµ¼ÖÂÍøÕ¾µÄÒµÎñÖжϣ¬¸ø¹«Ë¾ºÍÓû§Ôì³ÉË«ÖØËðʧ¡£ÄÇô£¬ÓÐľÓÐÒ»ÖÖ·½°¸Äܹ»½â¾ö´ËÎÊÌ⣬ʹµÃÊý¾Ý¿â²»ÔÙÒòΪ¸ºÔØÑ¹Á¦¹ý¸ß¶ø³ÉÎªÍøÕ¾µÄÆ¿¾±ÄØ£¿´ð°¸¿Ï¶¨ÊÇÓеġ£
Ŀǰ£¬´ó²¿·ÖµÄÖ÷Á÷¹ØÏµÐÍÊý¾Ý¿â¶¼ÌṩÁËÖ÷´ÓÈȱ¸¹¦ÄÜ£¬Í¨¹ýÅäÖÃÁ½Ì¨£¨»ò¶ą̀£©Êý¾Ý¿âµÄÖ÷´Ó¹ØÏµ£¬¿ÉÒÔ½«Ò»Ì¨Êý¾Ý¿â·þÎñÆ÷µÄÊý¾Ý¸üÐÂͬ²½µ½Áíһ̨·þÎñÆ÷ÉÏ¡£ÍøÕ¾¿ÉÒÔÀûÓÃÊý¾Ý¿âµÄÕâÒ»¹¦ÄÜ£¬ÊµÏÖÊý¾Ý¿âµÄ¶Áд·ÖÀ룬´Ó¶ø¸ÄÉÆÊý¾Ý¿âµÄ¸ºÔØÑ¹Á¦¡£

ÀûÓÃÊý¾Ý¿âµÄ¶Áд·ÖÀ룬Web·þÎñÆ÷ÔÚдÊý¾ÝµÄʱºò£¬·ÃÎÊÖ÷Êý¾Ý¿â£¨Master£©£¬Ö÷Êý¾Ý¿âͨ¹ýÖ÷´Ó¸´ÖÆ»úÖÆ½«Êý¾Ý¸üÐÂͬ²½µ½´ÓÊý¾Ý¿â£¨Slave£©£¬ÕâÑùµ±Web·þÎñÆ÷¶ÁÊý¾ÝµÄʱºò£¬¾Í¿ÉÒÔͨ¹ý´ÓÊý¾Ý¿â»ñµÃÊý¾Ý¡£ÕâÒ»·½°¸Ê¹µÃÔÚ´óÁ¿¶Á²Ù×÷µÄWebÓ¦ÓÿÉÒÔÇáËɵضÁÈ¡Êý¾Ý£¬¶øÖ÷Êý¾Ý¿âÒ²Ö»»á³ÐÊÜÉÙÁ¿µÄдÈë²Ù×÷£¬»¹¿ÉÒÔʵÏÖÊý¾ÝÈȱ¸·Ý£¬¿ÉνÊÇÒ»¾ÙÁ½µÃµÄ·½°¸¡£
1.2 »ùÓÚMySQLµÄÊý¾Ý¸´ÖÆÁ÷³Ì
¸Õ¸ÕÎÒÃÇÁ˽âÁ˹ØÏµÐÍÊý¾Ý¿âµÄ¶Áд·ÖÀëÄܹ»ÊµÏÖÊý¾Ý¿âµÄÖ÷´Ó¼Ü¹¹£¬ÄÇôÖ÷´Ó¼Ü¹¹ÖÐ×îÖØÒªµÄÊý¾Ý¸´ÖÆÓÖÊÇÔõôһ»ØÊÂÄØ£¿MySQL×÷Ϊ×îÁ÷ÐеĹØÏµÐÍÊý¾Ý¿âÖ®Ò»£¬Í¨¹ýÁ˽âMySQLµÄÊý¾Ý¸´ÖÆÁ÷³Ì£¬»áʹµÃÎÒÃǶÔRedisÖ÷´Ó¸´ÖƵÄÈÏÖª»áÓÐÒ»¶¨µÄ°ïÖú¡£

´ÓÉÏͼÀ´¿´£¬ÕûÌåÉÏÓÐÈçÏÂÈý¸ö²½´Õ£º
£¨1£©Master½«¸Ä±ä¼Ç¼µ½¶þ½øÖÆÈÕÖ¾(binary log)ÖУ¨ÕâЩ¼Ç¼½Ð×ö¶þ½øÖÆÈÕ־ʼþ£¬binary
log events£©£»
£¨2£©Slave½«MasterµÄ¶þ½øÖÆÈÕ־ʼþ(binary log events)¿½±´µ½ËüµÄÖмÌÈÕÖ¾(relay
log)£»
PS£º´ÓͼÖпÉÒÔ¿´³ö£¬Slave·þÎñÆ÷ÖÐÓÐÒ»¸öI/OÏß³Ì(I/O Thread)ÔÚ²»Í£µØ¼àÌýMasterµÄ¶þ½øÖÆÈÕÖ¾(Binary
Log)ÊÇ·ñÓиüУºÈç¹ûûÓÐËü»á˯ÃߵȴýMaster²úÉúеÄÈÕ־ʼþ£»Èç¹ûÓÐеÄÈÕ־ʼþ(Log Events)£¬Ôò»á½«Æä¿½±´ÖÁSlave·þÎñÆ÷ÖеÄÖмÌÈÕÖ¾(Relay
Log)¡£
£¨3£©SlaveÖØ×öÖмÌÈÕÖ¾(Relay Log)ÖеÄʼþ£¬½«MasterÉϵĸı䷴ӳµ½Ëü×Ô¼ºµÄÊý¾Ý¿âÖС£
PS£º´ÓͼÖпÉÒÔ¿´³ö£¬Slave·þÎñÆ÷ÖÐÓÐÒ»¸öSQLÏß³Ì(SQL Thread)´ÓÖмÌÈÕÖ¾¶Áȡʼþ£¬²¢ÖØ×öÆäÖеÄʼþ´Ó¶ø¸üÐÂSlaveµÄÊý¾Ý£¬Ê¹ÆäÓëMasterÖеÄÊý¾ÝÒ»Ö¡£Ö»Òª¸ÃÏß³ÌÓëI/OÏ̱߳£³ÖÒ»Ö£¬ÖмÌÈÕ־ͨ³£»áλÓÚOSµÄ»º´æÖУ¬ËùÒÔÖмÌÈÕÖ¾µÄ¿ªÏúºÜС¡£
¾¹ýÁËÉÏÃæµÄ¼òµ¥¼ò½é£¬ÎÒÃdzõ²½Á˽âÁËʲôÊÇÖ÷´Ó¸´ÖÆ£¬ÒÔ¼°ÔÚ¹ØÏµÐÍÊý¾Ý¿âÖÐÊý¾ÝÊÇÈçºÎ¸´ÖƵġ£ÔÚÕ⣬ÎÒÃDz»ÓÉÒÉÎÊÔÚRedisÖÐÓÖÊÇÔõÑùʵÏÖÊý¾Ý¸´ÖƵÄÄØ£¿±ð¼±£¬ÎÒÃÇÏÈÀ´Êµ¼ùһϣ¬ÏȶÔÖ÷´Ó¸´ÖƵõ½Ò»¸ö¸ÐÐÔÈÏʶ£¬ÔÙÓɸÐÐÔÈÏʶÉýµ½ÀíÐÔÈÏʶȥÀí½âһϡ£So£¬Let's
start doing.
¶þ¡¢ÔÚµ¥»úÉÏÄ£ÄâÖ÷´Ó¸´ÖƼܹ¹Êµ¼ù
2.1 ¿½±´Á½¸ö·þÎñµ½Ö¸¶¨´ÅÅÌÎļþ¼Ð
£¨1£©½«µÚһƪÖÐÏÂÔØµÄRedis·þÎñÎļþ¼Ð¸´ÖÆÁ½·Ý£¬²¢¸øÁ½¸öÎļþ¼ÐÈ¡ÃûΪ£ºRedisMasterServiceÓëRedisSlaveService£»

£¨2£©½«Á½¸öÎļþ¼Ð¿½±´µ½WindowsÖÐÖ¸¶¨µÄÎļþ¼ÐÖУ¬ÎÒÕâÀïͳһ¿½±´µ½E:\Ï£¬±ãÓÚºóÃæµÄÆô¶¯²âÊÔ£»
2.2 ·Ö±ðÐÞ¸ÄMasterºÍSlaveµÄÅäÖÃÎļþ
£¨1£©ÐÞ¸ÄMaster·þÎñµÄÅäÖÃÎļþ£¨redis.conf£©
ÕâÀÖ÷ÒªÐÞ¸ÄÒ»ÏÂMaster·þÎñËù°ó¶¨µÄIPµØÖ·£¨¼´Master·þÎñÆ÷µÄIPµØÖ·£©£¬ÎÒÕâÀïÓÉÓÚÊÇÔÚ±¾»ú½øÐеģ¬ËùÒÔÖ±½ÓÉèÖÃΪ127.0.0.1¼´¿É¡£Í¨¹ýÔÚredis.confÖÐËÑË÷"bind"£¬¿ÉÒÔ¿´µ½Ä¬ÈÏÅäÖÃÒѾÓÐÁË#bind
127.0.0.1µÄ×Ö·û´®£¬ÎÒÃÇÒª×öµÄÖ»Êǽ«Õâ¾äÈ¡Ïû×¢Ê;ͿÉÒÔÁË¡£

PS£º½¨ÒéʹÓÃÀàËÆÓÚEditPlus¡¢Notepad++µÈרҵһµãµÄ±à¼Æ÷´ò¿ªredis.confÅäÖÃÎļþ£¬ÕâÑù²éÕҺͱ༶¼±È½ÏÖ±¹ÛÃ÷ÁË¡£Èç¹ûÕâЩÄ㶼ûÓУ¬ÄÇÄã¿ÉÒÔÓÃVisual
Studio´ò¿ªÀ´±à¼£¨Èç¹ûÄãÁ¬VSҲûÓУ¬ÎÒÖ»ÄܺǺÇÁË£¬ÄãÓüÇʱ¾±à¼°É£¬Ã´Ã´àª£©¡£ºÃ°É£¬ÎÒ¾ÍûÓÐEditPlusºÍNotepad++£¬ÖØ×°ÁËϵͳ¾ÍûÓÐ×°ÕâЩ±à¼Æ÷£¬±»ÄãÃÇ¿´´©ÁË¡£
£¨2£©ÐÞ¸ÄSlave·þÎñµÄÅäÖÃÎļþ£¨redis.conf£©
¢ÙÐÞ¸ÄSlave°ó¶¨µÄ¶Ë¿ÚºÅ£ºÕâÀïÒòΪMasterºÍSlave¶¼ÔÚһ̨»úÆ÷ÉÏ£¬Òò´ËÐèÒªÐ޸Ķ˿ںÅÒÔÇø·ÖÁ½¸öRedis·þÎñ¡£Èç¹û²»Ð޸ģ¬ÔòĬÈ϶˿ںÅλ6379£»Ð޸ķ½·¨Ò²ºÜ¼òµ¥£¬ËÑË÷"port"¹Ø¼ü´Ê£¬½«port
6379¸ÄΪport 6380¼´¿É¡£×¢Ò⣬ÕâÀïÖ»Òª²»Îª6379¼´¿É£¬Äã¿ÉÒÔËæ±ã¸Ä£¬6380Ö»ÊÇÎÒÕâÀïÉèÖõĶ˿ںŶøÒÑ¡£

¢ÚÐÞ¸ÄSlave°ó¶¨µÄIPµØÖ·£¬ÕâÀïºÍMasterÒ»Ö£¬¶¼¸ÄΪbind 127.0.0.1¼´¿É£»
¢ÛÐÞ¸ÄMasterÓëSlaveµÄ¶ÔÓ¦¹ØÏµÅäÖãºËÑË÷"slaveof"¹Ø¼ü´Ê£¬»áÕÒµ½ÕâÑùÒ»¾ä£º#
slaveof <masterip> <masterport>¡£ÎÒÃÇÒª×öµÄ¾ÍÊÇ£¬È¡ÏûÕâ¾ä»°µÄ×¢ÊÍ£¬²¢½«<masterip>ºÍ<masterport>¸ÄΪÖ÷·þÎñÆ÷µÄIPµØÖ·ºÍ¶Ë¿ÚºÅ£¬ÕâÀïÎÒÃǵÄMaster·þÎñ»¹ÊDZ¾»ú£¬Òò´Ë¸ÄΪslaveof
127.0.0.1 6379¼´¿É¡£

2.3 ·Ö±ðÆô¶¯MasterºÍSlaveµÄ·þÎñ
£¨1£©Æô¶¯MasterµÄ·þÎñ£ºÍ¨¹ýcmdÌø×ªµ½MasterÎļþ¼ÐÏ£¬Ê¹ÓÃredis-server.exe
redis.confÃüÁîÆô¶¯Master·þÎñ£¬ÕâÀïÐèÒªÖ¸¶¨redis.confÊÇÒòΪÎÒÃǸոձà¼ÐÞ¸ÄÁËredis.conf£¬ÐèÒªÖØÐ¼ÓÔØÅäÖÃÎļþ£»

£¨2£©Æô¶¯SlaveµÄ·þÎñ£º²Ù×÷²½´ÕͬÉÏ£¬Ò²ÊÇredis-server.exe
redis.conf£¬×¢Òâ±ðÍüÁ˼ÓÉÏredis.confÕâ¾ä£»

£¨3£©Slave·þÎñÆô¶¯Íê³Éºó£¬ÎÒÃÇ¿ÉÒÔ¿´µ½cmdÖгöÏÖÁËһЩ²»Ò»ÑùµÄÈÕÖ¾ÐÅÏ¢¡£ÕâÀÎÒÃÇÀ´¼òµ¥µÄÁ˽âһϣº
¢ÙÊ×ÏÈ£¬ÔÚSlave·þÎñµÄÃüÁîÐÐÖгöÏÖÈçϵÄÈÕÖ¾ÐÅÏ¢£º

ÕâÀ¿ÉÒÔ¿´µ½Í¨¹ý±à¼ÁËÅäÖÃÎļþºó£¬Slave·þÎñÔÚÆô¶¯ºó±ã»áÖ÷¶¯µØÁ¬½ÓMaster·þÎñ£¨ÕâÀïÖ÷ÒªÊÇͨ¹ý·¢ËÍSYNCÃüÁîÇëÇóͬ²½Á¬½Ó£©£¬ÖмäMaster»á·¢Ò»¸öPINGÃüÁîÀ´¼ì²âSlaveµÄ´æ»î״̬£¨´æÔÚÔò¼ÌÐø¸´ÖÆ£¬Ê§Ð§ÔòÖÕÖ¹ºóÃæ²½´Õ£©£¬È»ºóµÈ´ýMaster·¢ËÍ»ØÆäÄÚ´æ¿ìÕÕÎļþ£¨ÕâÀïÄãÏȽ«Õâ¸öÄÚ´æ¿ìÕÕÎļþÀí½âΪһ¸öÊý¾Ý±¸·ÝÎļþ»òÈÕÖ¾£©¡£¿ÉÒÔ¿´³ö£¬ÕâÀïSlaveÒѾ½ÓÊÜÁËMasterµÄ36
bytesÊý¾Ý£¬²¢½«Êý¾Ý´æ´¢µ½ÁËÄÚ´æÖУ¬×îÖճɹ¦Íê³ÉÓëMasterµÄͬ²½¡£
¢ÚÆä´Î£¬ÔÚMaster·þÎñµÄÃüÁîÐÐÖгöÏÖÁËÈçϵÄÈÕÖ¾ÐÅÏ¢£º

ÕâÀMasterͨ¹ý¼ì²â·¢ÏÖÓÐSlave·¢ËÍÁËSYNCÃüÁîÀ´ÅжÏMasterÖÐÊÇ·ñÓÐÄÚ´æ¿ìÕÕ£¨»òÕ߸üеÄÄÚ´æ¿ìÕÕ£©£¬Ã»ÓÐÔò¿ªÊ¼Ö´ÐÐÄÚ´æ¿ìÕÕ£¨Ö÷ÒªÊǽ«£©£¬ÓÐÔòµÈ´ýÆä½áÊøÈ»ºó½«¿ìÕÕÎļþ·¢Ë͸øSlave¡£ÖÁ´Ë£¬Master¶Ë¾ÍÖÕÖ¹Á˴˴εÄSYNCͨÐÅ¡£¶øSlaveÔò»á½«Êý¾Ý¿ìÕÕÎļþ±£´æµ½±¾µØ£¬´ý½ÓÊÕÍê³Éºó£¬Çå¿ÕÄÚ´æ±í£¬ÖØÐ¶ÁÈ¡Master·¢À´µÄÄÚ´æ¿ìÕÕÎļþ£¬ÐγÉÒ»¸ö״̬µÄÑ»·¡£
2.4 ÔÚÃüÁîÐÐÖнøÐмòµ¥Êý¾Ý¶Áд²âÊÔ
PS£ºÕâÀïÖ÷ÒªÊÇͨ¹ýпªÁ½¸öcmd´°¿ÚÀ´Ä£ÄâÁ½¸ö¿Í»§¶ËÀ´²Ù×÷Redis
£¨1£©ÔÚMaster·þÎñÖÐдÈëÒ»¸öKey/ValueÊý¾Ý¶Ô
¢ÙÊ×ÏÈ£¬Ð¿ªÒ»¸öcmd£¬²¢ÔÚcmdÖÐÌø×ªµ½MasterÎļþ¼ÐÏ£¬Ê¹ÓÃredis-cli.exe
-p 6379ÃüÁî½øÈëMasterRedis¿Í»§¶ËÃüÁîģʽ
¢ÚÈ»ºó£¬ÎªÁËÈ·±£²âÊԳɹ¦£¬ÎÒÃÇÏȽ«µ±Ç°µÄMasterÖеÄÊý¾ÝÇå¿Õһϣ¬Ê¹ÓÃflushdbÃüÁîÇå¿ÕÒÑ´æµÄËùÓÐÊý¾Ý£¨Redis»á¶¨ÆÚ½«Êý¾Ý´ÓÄÚ´æÐ´ÈëÎļþÖÐʵÏÖÊý¾ÝµÄ³Ö¾Ã»¯£©
¢Û×îºó£¬Í¨¹ýÒ»¸ö¼òµ¥µÄsetÃüÁKeyΪtestkey,ValueΪedisonchouµÄ¼üÖµ¶ÔÊý¾Ý´æÈëMasterÖУ»

£¨2£©ÔÚSlaveÖжÁÈ¡¸Õ¸ÕÔÚMasterдÈëµÄKeyµÄValueÊý¾Ý
¢ÙÊ×ÏÈ£¬Ð¿ªÒ»¸öcmd£¬²¢ÔÚcmdÖÐÌø×ªµ½SlaveÎļþ¼ÐÏ£¬Ê¹ÓÃredis-cli.exe
-p 6380ÃüÁî½øÈëSlaveRedis¿Í»§¶ËÃüÁîģʽ
¢ÚÆä´Î£¬Í¨¹ýÒ»¸ö¼òµ¥µÄgetÃüÁî²éѯÊÇ·ñ´æÔÚKeyΪtestkeyµÄÊý¾Ý

´ÓÉÏͼ¿ÉÒÔ¿´µ½£¬ÎÒÃǵÄSlave³É¹¦»ñÈ¡ÁË´ÓMaster·¢À´µÄÊý¾Ý¸ü¸Ä£¬²¢±£´æµ½ÁË×Ô¼ºµÄÊý¾ÝÎļþÖУ¬Ê¹µÃÎÒÃÇͨ¹ý·ÃÎÊSlaveÒ²Äܹ»µÃµ½ÔÚMasterÉÏдÈëµÄÊý¾Ý¡£
£¨3£©ÔÙÀ´¿´¿´MasterºÍRedisµÄ·þÎñµÄcmd´°¿Ú£¬ÊDz»ÊÇÓÖ¶àÁËһЩÈÕÖ¾ÐÅÏ¢£ºMaster½«1¸öchangesдÈëÊý¾Ý¿ìÕÕÎļþ£¬·¢Ë͸øÁËSlave¡£¶øSlaveÒ²½«Õâ¸öchange´æÈë×Ô¼ºµÄÊý¾ÝÎļþ²¢±£´æ£¬Ò²¾ÍʹµÃ{testkey,edisonchou}µÄÕâ¸öÊý¾ÝÔÚÁ½¸öRedis·þÎñÖж¼ÓÐÁË£¬»òÕß˵ÔÚSlaveÖгɹ¦¸´ÖÆÁËMasterÖеÄÕâ¸ökey/value¶Ô¡£

2.5 ÔÚ³ÌÐòÖнøÐмòµ¥Êý¾Ý¶Áд²âÊÔ
£¨1£©Ð½¨Ò»¸öC#µÄ¿ØÖÆÌ¨ÏîÄ¿£¬²¢ÔÚÏîÄ¿Îļþ¼ÐÖÐн¨Ò»¸öLibÎļþ¼ÐÓÃÒÔ´æ·ÅRedisµÄ.NetÇý¶¯£¨ServiceStack.RedisµÄdll£©£»

£¨2£©Ð´ÈëÒÔϵĴúÂ룺
public static IRedisClientsManager redisClientManager = new PooledRedisClientManager(new string[]
2 {
3 "127.0.0.1:6379","127.0.0.1:6380"
4 });
5
6 public static IRedisClient redisClient = redisClientManager.GetClient();
7
8 static void Main(string[] args)
9 {
10 if(redisClient != null)
11 {
12 redisClient.Set("UserName","EdisonChou");
13 string userName = redisClient.Get("UserName");
14
15 Console.WriteLine("Hello,My name is {0}.Nice to meet you!", userName);
16 }
17 Console.ReadKey();
18 } |
ͨ¹ýµ÷ÊÔÔËÐУ¬¿ÉÒԵõ½ÒÔϵĽá¹û£º

£¨3£©ÔÙͨ¹ýMasterºÍSlaveµÄÃüÁîÐпͻ§¶Ë²é¿´´æ´¢Çé¿ö£º
¢ÙMasterÖУºget UserName

¢ÚSlaveÖУºget UserName

Èý¡¢»ØÍ·ÔÙ¿´RedisÖ÷´Ó¸´ÖÆÄ£ÐÍ
3.1 RedisµÄÁ½ÖÖ´æ´¢·½Ê½
RedisÊÇÒ»¸öÖ§³Ö³Ö¾Ã»¯µÄÄÚ´æÊý¾Ý¿â£¬ÈçºÎʵÏֳ־û¯ÄØ£¿´ð°¸ÊÇRedisÐèÒª¾³£½«ÄÚ´æÖеÄÊý¾Ýͬ²½µ½Ó²ÅÌÖÐÀ´±£Ö¤³Ö¾Ã»¯¡£ÄÇô£¬Redisͨ¹ýʲô·½Ê½À´´æ´¢Êý¾ÝÄØ£¿
RedisÖ§³ÖÁ½Öֳ־û¯·½Ê½£º
£¨1£©SnapsHotting£ºÊý¾Ý¿ìÕÕ£¬ÕâÒ²ÊÇĬÈϵķ½Ê½¡£´Ë·½Ê½ÊǰÑÊý¾Ý×öÒ»¸ö±¸·Ý£¬½«Êý¾Ý´æ´¢µ½¶þ½øÖÆÎļþÖÐÈ¥£¨ÕâÀï¿ÉÒԶԱȱ¾ÎÄ×ʼ½éÉܵÄMySQLµÄ¸´Öƹý³Ì£©¡£Õâ¸ö¶þ½øÖƵÄÎļþĬÈϵÄÎļþÃû³ÆÎªdump.rdb¡£ÎÒÃÇ»¹¿ÉÒÔͨ¹ýÅäÖÃÉèÖÃ×Ô¶¯×ö¿ìÕճ־û¯µÄ·½Ê½£¬±ÈÈ磺ÎÒÃÇ¿ÉÒÔÅäÖÃRedisÔÚnÃëÄÚÈç¹û³¬¹ým¸ökey¼üÐ޸ľÍ×Ô¶¯×ö¿ìÕÕ¡£

µ«ÊÇ£¬¿ìÕÕ·½Ê½ËäÈ»±È½ÏÍêÃÀ£¬µ«ÈÓ´æÔÚÒ»¶¨È±ÏÝ£ºÓÉÓÚ¿ìÕÕ·½Ê½ÊÇÔÚÒ»¶¨¼ä¸ôʱ¼ä×öÒ»´ÎµÄ£¬ËùÒÔÈç¹ûRedisÒâÍâå´µôµÄ»°£¬¾Í»á¶ªÊ§×îºóÒ»´Î¿ìÕÕºóµÄËùÓÐÐ޸ġ£Òò´ËÔÚÍêÃÀÖ÷ÒåÕßµÄÍÆ¶¯Ï£¬×÷ÕßÔö¼ÓÁËaof·½Ê½£¬Ò²¾ÍÊÇÏÂÃæÎÒÃÇËùÒª½éÉܵķ½Ê½¡£
£¨2£©Append-Only File£ºËõдΪaof£¬ÒâΪֻÔöÎļþ¡£´Ë·½Ê½ÔÚдÈëÄÚ´æÊý¾ÝµÄͬʱ½«²Ù×÷ÃüÁî±£´æµ½ÈÕÖ¾Îļþ£¨Ä¬ÈÏÃüÃûΪappendonly.aof£©£¬ÔÚRedisÓöµ½ÒâÍâÇé¿öºóÖØÆôʱ¿ÉÒÔͨ¹ýÈÕÖ¾Îļþ»Ö¸´Êý¾Ý¿â״̬¡£µ«ÊÇ£¬ÕýÒòΪÈç´Ë£¬ÔÚÒ»¸ö²¢·¢¸ü¸ÄÉÏÍòµÄϵͳÖУ¬ÃüÁîÈÕÖ¾ÊÇÒ»¸ö·Ç³£ÅÓ´óµÄÊý¾Ý£¨ÈÕÖ¾Îļþ»áÔ½À´Ô½´ó£©£¬¹ÜÀíά»¤³É±¾·Ç³£¸ß£¬»Ö¸´Öؽ¨Ê±¼äÒ²»á·Ç³£³¤£¬ÕâÑù»áµ¼ÖÂʧȥaof¸ß¿ÉÓÃÐÔ±¾Ò⣨aofµÄ±¾ÒâÆäʵÊÇÊý¾Ý¿É¿¿ÐÔ¼°¸ß¿ÉÓÃÐÔ£©¡£ÁíÍâ¸üÖØÒªµÄÊÇRedisÊÇÒ»¸öÄÚ´æÊý¾Ý½á¹¹Ä£ÐÍ£¬ËùÓеÄÓÅÊÆ¶¼Êǽ¨Á¢ÔÚ¶ÔÄڴ渴ÔÓÊý¾Ý½á¹¹¸ßЧµÄÔ×Ó²Ù×÷ÉÏ£¬ÕâÑù¾Í¿´³öaofÊÇÒ»¸ö·Ç³£²»Ðµ÷µÄ²¿·Ö¡£
¸Õ¸ÕÎÒÃÇ˵µ½£¬RedisĬÈϵĴ洢·½Ê½¿ìÕÕ·½Ê½£¬ÄÇôÈç¹ûÎÒÃÇÒª¿ªÆôaofÄ£Ê½ÄØ£¿Ö»ÐèÒªÔÚredis.confÅäÖÃÎļþÖн«aofģʽ´Óno¸ÄΪyes¼´¿É¡£

3.2 RedisµÄÊý¾Ýͬ²½Á÷³Ì
Ê×ÏÈ£¬RedisµÄ¸´Öƹ¦ÄÜÊÇÍêÈ«½¨Á¢ÔÚ֮ǰÁ˽âµÄ»ùÓÚÄÚ´æ¿ìÕյij־û¯²ßÂÔ»ù´¡Éϵģ¬Ò²¾ÍÊÇ˵ÎÞÂÛÄãµÄ³Ö¾Ã»¯²ßÂÔÑ¡ÔñµÄÊÇʲô£¬Ö»ÒªÓõ½ÁËRedisµÄ¸´Öƹ¦ÄÜ£¬¾ÍÒ»¶¨»áÓÐÄÚ´æ¿ìÕÕ·¢Éú¡£

£¨1£©Slave¶ËÔÚÅäÖÃÎļþÖÐÌí¼ÓÁËslave of <masterip> <masterport>µÄÖ¸ÁÓÚÊÇSlaveÆô¶¯Ê±¶ÁÈ¡ÅäÖÃÎļþ²¢ÏòMaster·¢ËÍSYNCµÄÃüÁȻºóµÈ´ýMaster·¢ËÍ»ØÆäÄÚ´æ¿ìÕÕÎļþ£»
£¨2£©Ê×ÏÈ£¬ÏÈ˵Ã÷һϣºÎÞÂÛÊǵÚÒ»´ÎÁ¬½Ó»¹ÊÇÖØÐÂÁ¬½Ó£¬Master¶¼»áÆô¶¯Ò»¸öºǫ́½ø³Ì£¬½«Êý¾Ý¿ìÕÕ±£´æµ½Êý¾ÝÎļþ£¨ÀýÈ磺dump.rdb£©ÖУ¬Í¬Ê±Master»á¼Ç¼ËùÓÐÐÞ¸ÄÊý¾ÝµÄÃüÁî²¢»º´æÔÚÊý¾ÝÎļþÖС£ÕâÀï½ô½ÓµÚÒ»²½£¬Master½ÓÊÕµ½Slave·¢À´µÄSYNCÃüÁîºó£¬»áÊ×ÏÈÏòSlave·¢ËÍÒ»¸öPINGÃüÁîÀ´¼ì²âSlaveµÄ´æ»î״̬£¨Ö÷Òª¿´SlaveÊÇ·ñʧЧ£¬Ã»ÓÐʧЧÔò¼ÌÐøºóÐø²Ù×÷£¬Ê§Ð§ÁËÔò²»¼ÌÐøÁË£©¡£È»ºó£¬£¨µ±ºǫ́½ø³ÌÍê³ÉÊý¾Ý»º´æ²Ù×÷ºó£©Master¾Í·¢ËÍÊý¾ÝÎļþÒÀ´ÎµØÊµÊ±·¢Ë͸øSlave¡£
PS£º²»¹ÜʲôÔÒòµ¼ÖÂSlaveºÍMaster¶Ï¿ªÖØÁ¬¶¼»áÖØ¸´ÒÔÉϹý³Ì¡£
£¨3£©Slave½ÓÊÕµ½Master·¢À´µÄÊý¾ÝÎļþÖ®ºó£¬»á±£´æµ½±¾µØ£¬´ý½ÓÊÕÍê³Éºó£¬¼ÓÔØµ½ÄÚ´æÖУ¬Õâ¾ÍÍê³ÉÁËÒ»´ÎÊý¾Ý¸´ÖÆ¡£Ö®ºó£¬MasterÖ»ÒªÒ»ÓÐÊý¾Ý¸üУ¬±ã»áдÈëÊý¾ÝÎļþ²¢·¢Ë͸ø¸÷¸öSlave£¬¶øSlaveÒ²»áÒ»Ö±¼àÌýMaster·¢À´µÄ¸üУ¬²¢ÖØÐ¼ÓÔØ£¬ÐγÉÒ»¸öÊý¾Ýͬ²½µÄÑ»·¡£
£¨4£©ÈôSlave³öÏÖ¹ÊÕϵ¼ÖÂå´»ú£¬»Ö¸´Õý³£ºó»á×Ô¶¯ÖØÐÂÁ¬½Ó£¬MasterÊÕµ½SlaveµÄÁ¬½Óºó£¬½«ÆäÍêÕûµÄÊý¾ÝÎļþ·¢Ë͸øSlave£¬Èç¹ûMaterͬʱÊÕµ½¶à¸öSlave·¢À´µÄͬ²½ÇëÇó£¬MasterÖ»»áÔÚºǫ́Æô¶¯Ò»¸ö½ø³Ì±£´æÊý¾ÝÎļþ£¬È»ºó½«Æä·¢Ë͸øËùÓеÄSlave£¬È·±£SlaveÕý³£¡£µ«ÊÇ£¬ÔÚ´óÊý¾ÝÁ¿Ï£¬ÖØÐ»ñÈ¡Õû¸öÍêÕûµÄMaster¿ìÕÕ£¬Ò»·½ÃæSlave»Ö¸´µÄʱ¼ä»á·Ç³£Âý£¬ÁíÒ»·½ÃæÒ²»á¸øÖ÷¿â´øÀ´Ñ¹Á¦¡£
ËÄ¡¢Ñ§Ï°Ð¡½á
±¾ÆªÎÒÊ×Ïȼòµ¥½éÉÜÁËÒ»ÏÂÖ÷´Ó¸´ÖƼܹ¹µÄ»ù±¾¸ÅÄȻºóÔÚWindowsÉϵ¥»úÄ£ÄâʵÏÖRedisµÄÖ÷´Ó¸´ÖƼܹ¹²¢Í¨¹ýÊý¾Ý¶ÁдÃüÁî½øÐмòµ¥²âÊÔ²¢ÑéÖ¤Êý¾ÝÊÇ·ñ¸´ÖƳɹ¦£¬×îºóͨ¹ýÁ˽âRedisµÄÖ÷´Ó¸´ÖÆÄ£ÐÍÖªµÀÁËRedisÊÇÈçºÎ½øÐÐÊý¾Ý¸´ÖƵ쬴ӻù´¡ÀíÂÛµ½»ù´¡Êµ¼ùÔÙµ½»ù´¡ÀíÂÛ£¬¶ÔÓÚÖ÷´Ó¸´ÖÆÒ²²»ËãİÉúÁË£¨ÖÁÉÙ»ìÁ˸öÁ³Ê죩¡£²»Öª²»¾õÓÖ2:30ÁË£¬Ï´Ï´Ë¯°É£¬½ñÌ죨8ÔÂ2ÈÕ£©»¹ÊÇÆßϦÇéÈ˽ڣ¬ËÓжàÓàµÄÇéÈ˽èÓÃһϣ¬ÎÒ±£Ö¤8ÔÂ3Èշ£¨ÎªÃ«ÎÒ»¹Ä¾ÓÐÅ®ÅèÓÑ£¬ÌìÀí²»Èݰ¡£¡£©¡£
|