¸üÐÂʱ¼ä:2020Äê03ÔÂ15ÈÕ20ʱ49·Ö À´Ô´:ÀÖÓã²¥¿Í ä¯ÀÀ´ÎÊý:
1.1. Redis ³Ö¾Ã»¯·½Ê½
1.1.1. RDB¿ìÕÕ
1.1.1.1. ¸ÅÊö
ÔÚĬÈÏÇé¿öÏ£¬ Redis ½«Êý¾Ý¿â¿ìÕÕ±£´æÔÚÃû×ÖΪ dump.rdbµÄ¶þ½øÖÆÎļþÖС£Äã¿ÉÒÔ¶Ô Redis ½øÐÐÉèÖ㬠ÈÃËüÔÚ“ N ÃëÄÚÊý¾Ý¼¯ÖÁÉÙÓÐ M ¸ö¸Ä¶¯”ÕâÒ»Ìõ¼þ±»Âú×ãʱ£¬ ×Ô¶¯±£´æÒ»´ÎÊý¾Ý¼¯¡£
ÄãÒ²¿ÉÒÔͨ¹ýµ÷Óà SAVE»òÕß BGSAVE £¬ ÊÖ¶¯Èà Redis ½øÐÐÊý¾Ý¼¯±£´æ²Ù×÷¡£ ±ÈÈç˵£¬ ÒÔÏÂÉèÖûáÈà Redis ÔÚÂú×ã“ 60 ÃëÄÚÓÐÖÁÉÙÓÐ 1000 ¸ö¼ü±»¸Ä¶¯”ÕâÒ»Ìõ¼þʱ£¬ ×Ô¶¯±£´æÒ»´ÎÊý¾Ý¼¯£º
save 60 1000
ÕâÖֳ־û¯·½Ê½±»³ÆÎª¿ìÕÕ snapshotting.

1.1.1.2. ºÎʱִÐпìÕÕ
³öÏÖÏÂÃæµÄÇé¿öredis»á¿ìÕÕÄÚ´æÀïµÄÊý¾Ý
1. Óû§·¢ËÍbgsaveÃüÁî(´Ëʱredis»áforkÒ»¸ö×Ó½ø³Ì,×Ó½ø³Ì¸ºÔðÉú³ÉÓ²ÅÌÎļþ,¸¸½ø³Ì¸ºÔð¼ÌÐø½ÓÊÜÃüÁî)
2. Óû§·¢ËÍsaveÃüÁî(ºÍbgsaveÃüÁͬ,·¢ËÍsaveÃüÁîºó,µ½ÏµÍ³´´½¨¿ìÕÕÍê³É֮ǰϵͳ²»»áÔÙ½ÓÊÕеÄÃüÁî,»»¾ä»°ËµsaveÃüÁî»á×èÈûºóÃæµÄÃüÁî,¶øbgsave²»»á)
3. Óû§ÔÚÅäÖÃÎļþÁËÅäÖÃÁËÀàËÆÕâÑùµÄÃüÁî save 60 1000
4. Õâ¸öµÄÒâ˼ÊÇ˵,×Ô´ÓÉϴοìÕճɹ¦ËãÆð,Èç¹ûÂú×ã"60ÃëÄÚÓÐ1000´ÎдÈë"Õâ¸öÌõ¼þ,ϵͳ¾Í×Ô¶¯µ÷ÓÃbgsave,Èç¹ûÅäÖÃÎļþÀïÓжà¸ösaveÃüÁî,Ö»ÓÐÂú×ãÒ»¸ö¾Íµ÷ÓÃbgsaveÃüÁî
5. Óû§·¢ËÍshutdown,ϵͳ»áÏÈÖ´ÐÐsaveÃüÁî×èÈû¿Í»§¶Ë,È»ºó¹Ø±Õ·þÎñÆ÷
6. µ±ÓÐÖ÷´Ó¼Ü¹¹Ê±,´Ó·þÎñÆ÷ÏòÖ÷·þÎñÆ÷·¢ËÍsyncÃüÁîÀ´Ö´Ðи´ÖƲÙ×÷ʱ,Ö»ÓÐÖ÷·þÎñÆ÷µ±Ê±Ã»ÓнøÐÐbgsave²Ù×÷,ÄÇôÖ÷·þÎñÆ÷¾Í»áÖ´ÐÐbgsave²Ù×÷¡£ÍƼöÁ˽âjavaÅàѵ¿Î³Ì¡£
1.1.1.3.¿ìÕÕµÄÅäÖÃÐÅÏ¢
save 60 1000
stop-writes-on-bgsave-error no
rdbcompression yes
dbfilename dump.rdb
dir ./
1.1.1.4.¹¤×÷·½Ê½
µ± Redis ÐèÒª±£´æ dump.rdb Îļþʱ£¬ ·þÎñÆ÷Ö´ÐÐÒÔϲÙ×÷:
·Redis µ÷ÓÃforks. ͬʱӵÓи¸½ø³ÌºÍ×Ó½ø³Ì¡£
·×Ó½ø³Ì½«Êý¾Ý¼¯Ð´Èëµ½Ò»¸öÁÙʱ RDB ÎļþÖС£
·µ±×Ó½ø³ÌÍê³É¶ÔРRDB ÎļþµÄдÈëʱ£¬Redis ÓÃРRDB ÎļþÌæ»»ÔÀ´µÄ RDB Îļþ£¬²¢É¾³ý¾ÉµÄ RDB Îļþ¡£ÕâÖÖ¹¤×÷·½Ê½Ê¹µÃ Redis ¿ÉÒÔ´Óдʱ¸´ÖÆ(copy-on-write)»úÖÆÖлñÒæ¡£
1.1.2. Ö»×·¼Ó²Ù×÷µÄÎļþ(Append-only file£¬AOF)
1.1.2.1. ¸ÅÊö
¿ìÕÕ¹¦Äܲ¢²»ÊǷdz£Ä;Ã(dura ble)£º Èç¹û Redis ÒòΪijЩÔÒò¶øÔì³É¹ÊÕÏÍ£»ú£¬ ÄÇô·þÎñÆ÷½«¶ªÊ§×î½üдÈë¡¢ÇÒÈÔδ±£´æµ½¿ìÕÕÖеÄÄÇЩÊý¾Ý¡£ ´Ó 1.1 °æ±¾¿ªÊ¼£¬ Redis Ôö¼ÓÁËÒ»ÖÖÍêÈ«Ä;õij־û¯·½Ê½£º AOF ³Ö¾Ã»¯¡£
Äã¿ÉÒÔÔÚÅäÖÃÎļþÖдò¿ªAOF·½Ê½:
appendonly yes
´ÓÏÖÔÚ¿ªÊ¼£¬ ÿµ± Redis Ö´ÐÐÒ»¸ö¸Ä±äÊý¾Ý¼¯µÄÃüÁîʱ(±ÈÈç SET)£¬ Õâ¸öÃüÁî¾Í»á±»×·¼Óµ½ AOF ÎļþµÄĩβ¡£ÕâÑùµÄ»°£¬ µ± Redis ÖØÐÂÆôʱ£¬ ³ÌÐò¾Í¿ÉÒÔͨ¹ýÖØÐÂÖ´ÐÐ AOF ÎļþÖеÄÃüÁîÀ´´ïµ½Öؽ¨Êý¾Ý¼¯µÄÄ¿µÄ¡£
1.1.2.2. ÈÕÖ¾ÖØÐ´
ÒòΪ AOF µÄÔË×÷·½Ê½ÊDz»¶ÏµØ½«ÃüÁî×·¼Óµ½ÎļþµÄĩ⣬ ËùÒÔËæ×ÅдÈëÃüÁîµÄ²»¶ÏÔö¼Ó£¬ AOF ÎļþµÄÌå»ýÒ²»á±äµÃÔ½À´Ô½´ó¡£¾Ù¸öÀý×Ó£¬ Èç¹ûÄã¶ÔÒ»¸ö¼ÆÊýÆ÷µ÷ÓÃÁË 100 ´Î INCR £¬ ÄÇô½ö½öÊÇΪÁ˱£´æÕâ¸ö¼ÆÊýÆ÷µÄµ±Ç°Öµ£¬AOF Îļþ¾ÍÐèҪʹÓà 100 Ìõ¼Ç¼(entry)¡£È»¶øÔÚʵ¼ÊÉÏ£¬ ֻʹÓÃÒ»Ìõ SET ÃüÁîÒѾ×ãÒÔ±£´æ¼ÆÊýÆ÷µÄµ±Ç°ÖµÁË£¬ ÆäÓà 99 Ìõ¼Ç¼ʵ¼ÊÉ϶¼ÊǶàÓàµÄ¡£
ΪÁË´¦ÀíÕâÖÖÇé¿ö£¬ Redis Ö§³ÖÒ»ÖÖÓÐȤµÄÌØÐÔ£º ¿ÉÒÔÔÚ²»´ò¶Ï·þÎñ¿Í»§¶ËµÄÇé¿öÏ£¬ ¶Ô AOF Îļþ½øÐÐÖØ½¨(rebuild)¡£Ö´ÐÐ BGREWRITEAOF ÃüÁ Redis ½«Éú³ÉÒ»¸öÐ嵀 AOF Îļþ£¬ Õâ¸öÎļþ°üº¬Öؽ¨µ±Ç°Êý¾Ý¼¯ËùÐèµÄ×îÉÙÃüÁî¡£Redis 2.2 ÐèÒª×Ô¼ºÊÖ¶¯Ö´ÐÐ BGREWRITEAOF ÃüÁî; Redis 2.4 Ôò¿ÉÒÔ×Ô¶¯´¥·¢ AOF ÖØÐ´£¬ ¾ßÌåÐÅÏ¢Çë²é¿´ 2.4 µÄʾÀýÅäÖÃÎļþ¡£
1.1.2.3. AOFÓжàÄÍÓÃ
Äã¿ÉÒÔÅäÖà Redis ¶à¾Ã²Å½«Êý¾Ý fsync µ½´ÅÅÌÒ»´Î¡£ÓÐÈýÖÖ·½Ê½£º
·Ã¿´ÎÓÐÐÂÃüÁî×·¼Óµ½ AOF Îļþʱ¾ÍÖ´ÐÐÒ»´Î fsync £º·Ç³£Âý£¬Ò²·Ç³£°²È«
·Ã¿Ãë fsync Ò»´Î£º×ã¹»¿ì(ºÍʹÓà RDB ³Ö¾Ã»¯²î²»¶à)£¬²¢ÇÒÔÚ¹ÊÕÏʱֻ»á¶ªÊ§ 1 ÃëÖÓµÄÊý¾Ý¡£
·´Ó²» fsync £º½«Êý¾Ý½»¸ø²Ù×÷ϵͳÀ´´¦Àí¡£¸ü¿ì£¬Ò²¸ü²»°²È«µÄÑ¡Ôñ¡£
·ÍƼö(²¢ÇÒÒ²ÊÇĬÈÏ)µÄ´ëʩΪÿÃë fsync Ò»´Î£¬ ÕâÖÖ fsync ²ßÂÔ¿ÉÒÔ¼æ¹ËËٶȺͰ²È«ÐÔ¡£
1.1.2.4.Èç¹ûAOFÎļþËð»µÁËÔõô°ì?
·þÎñÆ÷¿ÉÄÜÔÚ³ÌÐòÕýÔÚ¶Ô AOF Îļþ½øÐÐдÈëʱͣ»ú£¬ Èç¹ûÍ£»úÔì³ÉÁË AOF Îļþ³ö´í(corrupt)£¬ ÄÇô Redis ÔÚÖØÆôʱ»á¾Ü¾øÔØÈëÕâ¸ö AOF Îļþ£¬ ´Ó¶øÈ·±£Êý¾ÝµÄÒ»ÖÂÐÔ²»»á±»ÆÆ»µ¡£µ±·¢ÉúÕâÖÖÇé¿öʱ£¬ ¿ÉÒÔÓÃÒÔÏ·½·¨À´ÐÞ¸´³ö´íµÄ AOF Îļþ£º
1. ΪÏÖÓÐµÄ AOF Îļþ´´½¨Ò»¸ö±¸·Ý¡£
2. ʹÓà Redis ¸½´øµÄ redis-check-aof ³ÌÐò£¬¶ÔÔÀ´µÄ AOF Îļþ½øÐÐÐÞ¸´:
redis-check-aof –fix
3. (¿ÉÑ¡)ʹÓà diff -u ¶Ô±ÈÐÞ¸´ºóµÄ AOF ÎļþºÍÔʼ AOF ÎļþµÄ±¸·Ý£¬²é¿´Á½¸öÎļþÖ®¼äµÄ²»Í¬Ö®´¦¡£
4. ÖØÆô Redis ·þÎñÆ÷£¬µÈ´ý·þÎñÆ÷ÔØÈëÐÞ¸´ºóµÄ AOF Îļþ£¬²¢½øÐÐÊý¾Ý»Ö¸´¡£
1.1.2.5.AOPÖØÐ´ÔÀí
AOF ÖØÐ´ºÍ RDB ´´½¨¿ìÕÕÒ»Ñù£¬¶¼ÇÉÃîµØÀûÓÃÁËдʱ¸´ÖÆ»úÖÆ:
·redis Ö´ÐÐ fork() £¬ÏÖÔÚͬʱӵÓи¸½ø³ÌºÍ×Ó½ø³Ì¡£
·×Ó½ø³Ì¿ªÊ¼½«Ð AOF ÎļþµÄÄÚÈÝдÈëµ½ÁÙʱÎļþ¡£
·¶ÔÓÚËùÓÐÐÂÖ´ÐеÄдÈëÃüÁ¸¸½ø³ÌÒ»±ß½«ËüÃÇÀÛ»ýµ½Ò»¸öÄڴ滺´æÖУ¬Ò»±ß½«ÕâЩ¸Ä¶¯×·¼Óµ½ÏÖÓÐ AOF ÎļþµÄĩβ,ÕâÑùÑù¼´Ê¹ÔÚÖØÐ´µÄÖÐ;·¢ÉúÍ£»ú£¬ÏÖÓÐµÄ AOF ÎļþÒ²»¹Êǰ²È«µÄ¡£
·µ±×Ó½ø³ÌÍê³ÉÖØÐ´¹¤×÷ʱ£¬Ëü¸ø¸¸½ø³Ì·¢ËÍÒ»¸öÐźţ¬¸¸½ø³ÌÔÚ½ÓÊÕµ½ÐźÅÖ®ºó£¬½«Äڴ滺´æÖеÄËùÓÐÊý¾Ý×·¼Óµ½Ð AOF ÎļþµÄĩβ¡£
¸ã¶¨!ÏÖÔÚ Redis Ô×ÓµØÓÃÐÂÎļþÌæ»»¾ÉÎļþ£¬Ö®ºóËùÓÐÃüÁî¶¼»áÖ±½Ó×·¼Óµ½Ð AOF ÎļþµÄĩβ¡£
1.1.3.ÔõÑù´ÓRDB·½Ê½Çл»ÎªAOF·½Ê½
ÔÚ Redis 2.2 »òÒÔÉϰ汾£¬¿ÉÒÔÔÚ²»ÖØÆôµÄÇé¿öÏ£¬´Ó RDB Çл»µ½ AOF £º
·Îª×îÐ嵀 dump.rdb Îļþ´´½¨Ò»¸ö±¸·Ý¡£
·½«±¸·Ý·Åµ½Ò»¸ö°²È«µÄµØ·½¡£
·Ö´ÐÐÒÔÏÂÁ½ÌõÃüÁî:
-redis-cli config set appendonly yes
redis-cli config set save ""
·È·±£Ð´ÃüÁî»á±»ÕýÈ·µØ×·¼Óµ½ AOF ÎļþµÄĩβ¡£
·Ö´ÐеĵÚÒ»ÌõÃüÁÆôÁË AOF ¹¦ÄÜ£º Redis »á×èÈûÖ±µ½³õʼ AOF Îļþ´´½¨Íê³ÉΪֹ£¬ Ö®ºó Redis »á¼Ì
Ðø´¦ÀíÃüÁîÇëÇó£¬ ²¢¿ªÊ¼½«Ð´ÈëÃüÁî×·¼Óµ½ AOF Îļþĩβ¡£
Ö´ÐеĵڶþÌõÃüÁîÓÃÓÚ¹Ø±Õ RDB ¹¦ÄÜ¡£ ÕâÒ»²½ÊÇ¿ÉÑ¡µÄ£¬ Èç¹ûÄãÔ¸ÒâµÄ»°£¬ Ò²¿ÉÒÔͬʱʹÓà RDB ºÍ AOF ÕâÁ½Öֳ־û¯¹¦ÄÜ¡£
ÖØÒª:±ðÍüÁËÔÚ redis.conf Öдò¿ª AOF ¹¦ÄÜ! ·ñÔòµÄ»°£¬ ·þÎñÆ÷ÖØÆôÖ®ºó£¬ ֮ǰͨ¹ý CONFIG SET ÉèÖõÄÅäÖþͻᱻÒÅÍü£¬ ³ÌÐò»á°´ÔÀ´µÄÅäÖÃÀ´Æô¶¯·þÎñÆ÷¡£
1.1.4. AOFºÍRDBÖ®¼äµÄÏ໥×÷ÓÃ
ÔÚ°æ±¾ºÅ´óÓÚµÈÓÚ 2.4 µÄ Redis ÖУ¬ BGSAVE Ö´ÐеĹý³ÌÖУ¬ ²»¿ÉÒÔÖ´ÐÐ BGREWRITEAOF ¡£ ·´¹ýÀ´Ëµ£¬ ÔÚBGREWRITEAOF Ö´ÐеĹý³ÌÖУ¬ Ò²²»¿ÉÒÔÖ´ÐÐ BGSAVE¡£Õâ¿ÉÒÔ·ÀÖ¹Á½¸ö Redis ºǫ́½ø³Ìͬʱ¶Ô´ÅÅ̽øÐдóÁ¿µÄI/O ²Ù×÷¡£
Èç¹û BGSAVE ÕýÔÚÖ´ÐУ¬ ²¢ÇÒÓû§ÏÔʾµØµ÷Óà BGREWRITEAOF ÃüÁ ÄÇô·þÎñÆ÷½«ÏòÓû§»Ø¸´Ò»¸ö OK ״̬£¬²¢¸æÖªÓû§£¬ BGREWRITEAOF ÒѾ±»Ô¤¶¨Ö´ÐУº Ò»µ© BGSAVE Ö´ÐÐÍê±Ï£¬ BGREWRITEAOF ¾Í»áÕýʽ¿ªÊ¼¡£ µ±Redis Æô¶¯Ê±£¬ Èç¹û RDB ³Ö¾Ã»¯ºÍ AOF ³Ö¾Ã»¯¶¼±»´ò¿ªÁË£¬ ÄÇô³ÌÐò»áÓÅÏÈʹÓà AOF ÎļþÀ´»Ö¸´Êý¾Ý¼¯£¬ ÒòΪAOF ÎļþËù±£´æµÄÊý¾Ýͨ³£ÊÇ×îÍêÕûµÄ¡£
1.1.5. AOF VS RDB
RDB³Ö¾Ã»¯·½Ê½Äܹ»ÔÚÖ¸¶¨µÄʱ¼ä¼ä¸ôÄܶÔÄãµÄÊý¾Ý½øÐпìÕÕ´æ´¢¡£
·AOF³Ö¾Ã»¯·½Ê½¼Ç¼ÿ´Î¶Ô·þÎñÆ÷дµÄ²Ù×÷,µ±·þÎñÆ÷ÖØÆôµÄʱºò»áÖØÐÂÖ´ÐÐÕâЩÃüÁîÀ´»Ö¸´ÔʼµÄÊý¾Ý,AOFÃüÁîÒÔredisÐÒé×·¼Ó±£´æÃ¿´ÎдµÄ²Ù×÷µ½Îļþĩβ¡£Redis»¹ÄܶÔAOFÎļþ½øÐкóÌ¨ÖØÐ´,ʹµÃAOFÎļþµÄÌå»ý²»ÖÁÓÚ¹ý´ó¡£
·Èç¹ûÄãֻϣÍûÄãµÄÊý¾ÝÔÚ·þÎñÆ÷ÔËÐеÄʱºò´æÔÚ,ÄãÒ²¿ÉÒÔ²»Ê¹ÓÃÈκγ־û¯·½Ê½¡£
·ÄãÒ²¿ÉÒÔͬʱ¿ªÆôÁ½Öֳ־û¯·½Ê½, ÔÚÕâÖÖÇé¿öÏÂ, µ±redisÖØÆôµÄʱºò»áÓÅÏÈÔØÈëAOFÎļþÀ´»Ö¸´ÔʼµÄÊý¾Ý,ÒòΪÔÚͨ³£Çé¿öÏÂAOFÎļþ±£´æµÄÊý¾Ý¼¯Òª±ÈRDBÎļþ±£´æµÄÊý¾Ý¼¯ÒªÍêÕû¡£
·×îÖØÒªµÄÊÂÇéÊÇÁ˽âRDBºÍAOF³Ö¾Ã»¯·½Ê½µÄ²»Í¬,ÈÃÎÒÃÇÒÔRDB³Ö¾Ã»¯·½Ê½¿ªÊ¼
1.1.5.1.RDBµÄÓÅȱµã
Óŵã
·RDBÊÇÒ»¸ö·Ç³£½ô´ÕµÄÎļþ,Ëü±£´æÁËij¸öʱ¼äµãµÃÊý¾Ý¼¯,·Ç³£ÊÊÓÃÓÚÊý¾Ý¼¯µÄ±¸·Ý,±ÈÈçÄã¿ÉÒÔÔÚÿ¸öСʱ±¨±£´æÒ»Ï¹ýÈ¥24СʱÄÚµÄÊý¾Ý,ͬʱÿÌì±£´æ¹ýÈ¥30ÌìµÄÊý¾Ý,ÕâÑù¼´Ê¹³öÁËÎÊÌâÄãÒ²¿ÉÒÔ¸ù¾ÝÐèÇó»Ö¸´µ½²»Í¬°æ±¾µÄÊý¾Ý¼¯¡£
·RDBÊÇÒ»¸ö½ô´ÕµÄµ¥Ò»Îļþ,ºÜ·½±ã´«Ë͵½ÁíÒ»¸öÔ¶¶ËÊý¾ÝÖÐÐÄ»òÕßÑÇÂíÑ·µÄS3£¨¿ÉÄܼÓÃÜ£©£¬·Ç³£ÊÊÓÃÓÚÔÖÄѻָ´¡£
·RDBÔÚ±£´æRDBÎļþʱ¸¸½ø³ÌΨһÐèÒª×öµÄ¾ÍÊÇfork³öÒ»¸ö×Ó½ø³Ì,½ÓÏÂÀ´µÄ¹¤×÷È«²¿ÓÉ×Ó½ø³ÌÀ´×ö£¬¸¸½ø³Ì²»ÐèÒªÔÙ×öÆäËûIO²Ù×÷£¬ËùÒÔRDB³Ö¾Ã»¯·½Ê½¿ÉÒÔ×î´ó»¯redisµÄÐÔÄÜ¡£
·ÓëAOFÏà±È,ÔÚ»Ö¸´´óµÄÊý¾Ý¼¯µÄʱºò£¬RDB·½Ê½»á¸ü¿ìһЩ¡£
ȱµã
·Èç¹ûÄãÏ£ÍûÔÚredisÒâÍâÍ£Ö¹¹¤×÷£¨ÀýÈçµçÔ´Öжϣ©µÄÇé¿ö϶ªÊ§µÄÊý¾Ý×îÉٵϰ£¬ÄÇôRDB²»ÊʺÏÄã¡£ËäÈ»Äã¿ÉÒÔÅäÖò»Í¬µÄsaveʱ¼äµã(ÀýÈçÿ¸ô5·ÖÖÓ²¢ÇÒ¶ÔÊý¾Ý¼¯ÓÐ100¸öдµÄ²Ù×÷),ÊÇRedisÒªÍêÕûµÄ±£´æÕû¸öÊý¾Ý¼¯ÊÇÒ»¸ö±È½Ï·±ÖصŤ×÷,Äãͨ³£»áÿ¸ô5·ÖÖÓ»òÕ߸ü¾Ã×öÒ»´ÎÍêÕûµÄ±£´æ,ÍòÒ»ÔÚRedisÒâÍâå´»ú,Äã¿ÉÄܻᶪʧ¼¸·ÖÖÓµÄÊý¾Ý¡£
·RDB ÐèÒª¾³£fork×Ó½ø³ÌÀ´±£´æÊý¾Ý¼¯µ½Ó²ÅÌÉÏ,µ±Êý¾Ý¼¯±È½Ï´óµÄʱºò,forkµÄ¹ý³ÌÊǷdz£ºÄʱµÄ,¿ÉÄܻᵼÖÂRedisÔÚһЩºÁÃë¼¶ÄÚ²»ÄÜÏìÓ¦¿Í»§¶ËµÄÇëÇó.Èç¹ûÊý¾Ý¼¯¾Þ´ó²¢ÇÒCPUÐÔÄܲ»ÊǺܺõÄÇé¿öÏÂ,ÕâÖÖÇé¿ö»á³ÖÐø1Ãë,AOFÒ²ÐèÒªfork,µ«ÊÇÄã¿ÉÒÔµ÷½ÚÖØÐ´ÈÕÖ¾ÎļþµÄƵÂÊÀ´Ìá¸ßÊý¾Ý¼¯µÄÄ;öȡ£
1.1.5.2.AOF ÓÅȱµã
Óŵã -
ʹÓÃAOF »áÈÃÄãµÄRedis¸ü¼ÓÄ;Ã: Äã¿ÉÒÔʹÓò»Í¬µÄfsync²ßÂÔ£ºÎÞfsync,ÿÃëfsync,ÿ´ÎдµÄʱºòfsync.ʹÓÃĬÈϵÄÿÃëfsync²ßÂÔ,RedisµÄÐÔÄÜÒÀÈ»ºÜºÃ(fsyncÊÇÓɺǫ́Ï߳̽øÐд¦ÀíµÄ,Ö÷Ï̻߳ᾡÁ¦´¦Àí¿Í»§¶ËÇëÇó),Ò»µ©³öÏÖ¹ÊÕÏ£¬Äã×î¶à¶ªÊ§1ÃëµÄÊý¾Ý¡£
·AOFÎļþÊÇÒ»¸öÖ»½øÐÐ×·¼ÓµÄÈÕÖ¾Îļþ,ËùÒÔ²»ÐèҪдÈëseek,¼´Ê¹ÓÉÓÚijЩÔÒò(´ÅÅ̿ռäÒÑÂú£¬Ð´µÄ¹ý³ÌÖÐå´»úµÈµÈ)δִÐÐÍêÕûµÄдÈëÃüÁî,ÄãÒ²Ò²¿ÉʹÓÃredis-check-aof¹¤¾ßÐÞ¸´ÕâЩÎÊÌâ¡£
·Redis ¿ÉÒÔÔÚ AOF ÎļþÌå»ý±äµÃ¹ý´óʱ£¬×Ô¶¯µØÔÚºǫ́¶Ô AOF ½øÐÐÖØÐ´£º ÖØÐ´ºóµÄРAOF Îļþ°üº¬Á˻ָ´µ±Ç°Êý¾Ý¼¯ËùÐèµÄ×îСÃüÁºÏ¡£ Õû¸öÖØÐ´²Ù×÷ÊǾø¶Ô°²È«µÄ£¬ÒòΪ Redis ÔÚ´´½¨Ð AOF ÎļþµÄ¹ý³ÌÖУ¬»á¼ÌÐø½«ÃüÁî×·¼Óµ½ÏÖÓÐµÄ AOF ÎļþÀïÃæ£¬¼´Ê¹ÖØÐ´¹ý³ÌÖз¢ÉúÍ£»ú£¬ÏÖÓÐµÄ AOF ÎļþÒ²²»»á¶ªÊ§¡£ ¶øÒ»µ©Ð AOF Îļþ´´½¨Íê±Ï£¬Redis ¾Í»á´Ó¾É AOF ÎļþÇл»µ½Ð AOF Îļþ£¬²¢¿ªÊ¼¶ÔРAOFÎļþ½øÐÐ×·¼Ó²Ù×÷¡£
·AOF ÎļþÓÐÐòµØ±£´æÁ˶ÔÊý¾Ý¿âÖ´ÐеÄËùÓÐдÈë²Ù×÷£¬ ÕâЩдÈë²Ù×÷ÒÔ Redis ÐÒéµÄ¸ñʽ±£´æ£¬ Òò´ËAOF ÎļþµÄÄÚÈݷdz£ÈÝÒ×±»È˶Á¶®£¬ ¶ÔÎļþ½øÐзÖÎö£¨parse£©Ò²ºÜÇáËÉ¡£ µ¼³ö£¨export£© AOF ÎļþÒ²·Ç³£¼òµ¥£º ¾Ù¸öÀý×Ó£¬ Èç¹ûÄ㲻СÐÄÖ´ÐÐÁË FLUSHALL ÃüÁ µ«Ö»Òª AOF Îļþδ±»ÖØÐ´£¬ ÄÇôֻҪֹͣ·þÎñÆ÷£¬ ÒÆ³ý AOF ÎļþĩβµÄ FLUSHALL ÃüÁ ²¢ÖØÆôR edis £¬ ¾Í¿ÉÒÔ½«Êý¾Ý¼¯»Ö¸´µ½FLUSHALL Ö´ÐÐ֮ǰµÄ״̬¡£
ȱµã -
·¶ÔÓÚÏàͬµÄÊý¾Ý¼¯À´Ëµ£¬AOF ÎļþµÄÌå»ýͨ³£Òª´óÓÚ RDB ÎļþµÄÌå»ý¡£
¸ù¾ÝËùʹÓÃµÄ fsync ²ßÂÔ£¬AOF µÄËÙ¶È¿ÉÄÜ»áÂýÓÚ RDB ¡£ ÔÚÒ»°ãÇé¿öÏ£¬ ÿÃë fsync µÄÐÔÄÜÒÀÈ»·Ç³£¸ß£¬ ¶ø¹Ø±Õ fsync ¿ÉÒÔÈà AOF µÄËÙ¶ÈºÍ RDB Ò»Ñù¿ì£¬ ¼´Ê¹Ôڸ߸ººÉÖ®ÏÂÒ²ÊÇÈç´Ë¡£ ²»¹ýÔÚ´¦Àí¾Þ´óµÄдÈëÔØÈëʱ£¬RDB ¿ÉÒÔÌṩ¸üÓб£Ö¤µÄ×î´óÑÓ³Ùʱ¼ä£¨latency£©¡£
1.2.±¸·ÝredisÊý¾Ý
ÔÚÔĶÁÕâ¸öС½Úǰ£¬ ÇëÀμÇÏÂÃæÕâ¾ä»°:£ºÈ·±£ÄãµÄÊý¾ÝÓÉÍêÕûµÄ±¸·Ý. ´ÅÅ̹ÊÕÏ£¬ ½ÚµãʧЧ£¬ ÖîÈç´ËÀàµÄÎÊÌâ¶¼¿ÉÄÜÈÃÄãµÄÊý¾ÝÏûʧ²»¼û£¬ ²»½øÐб¸·ÝÊǷdz£Î£Ïյġ£
Redis ¶ÔÓÚÊý¾Ý±¸·ÝÊǷdz£ÓѺõģ¬ ÒòΪÄã¿ÉÒÔÔÚ·þÎñÆ÷ÔËÐеÄʱºò¶Ô RDB Îļþ½øÐи´ÖÆ£º RDB ÎļþÒ»µ©±»´´½¨£¬ ¾Í²»»á½øÐÐÈκÎÐ޸ġ£ µ±·þÎñÆ÷Òª´´½¨Ò»¸öÐ嵀 RDB Îļþʱ£¬ ËüÏȽ«ÎļþµÄÄÚÈݱ£´æÔÚÒ»¸öÁÙʱÎļþÀïÃæ£¬ µ±ÁÙʱÎļþдÈëÍê±Ïʱ£¬ ³ÌÐò²ÅʹÓà rename(2) Ô×ÓµØÓÃÁÙʱÎļþÌæ»»ÔÀ´µÄ RDB Îļþ¡£
ÕâÒ²¾ÍÊÇ˵£¬ ÎÞÂÛºÎʱ£¬ ¸´ÖÆ RDB Îļþ¶¼ÊǾø¶Ô°²È«µÄ¡£
´´½¨Ò»¸ö¶¨ÆÚÈÎÎñ£¨cron job£©£¬ ÿСʱ½«Ò»¸ö RDB Îļþ±¸·Ýµ½Ò»¸öÎļþ¼Ð£¬ ²¢ÇÒÿÌ콫һ¸ö RDB Îļþ±¸·Ýµ½ÁíÒ»¸öÎļþ¼Ð¡£
È·±£¿ìÕյı¸·Ý¶¼´øÓÐÏàÓ¦µÄÈÕÆÚºÍʱ¼äÐÅÏ¢£¬ ÿ´ÎÖ´Ðж¨ÆÚÈÎÎñ½Å±¾Ê±£¬ ʹÓà find ÃüÁîÀ´É¾³ý¹ýÆÚµÄ¿ìÕÕ£º ±ÈÈç˵£¬ Äã¿ÉÒÔ±£Áô×î½ü 48 СʱÄÚµÄÿСʱ¿ìÕÕ£¬ »¹¿ÉÒÔ±£Áô×î½üÒ»Á½¸öÔµÄÿÈÕ¿ìÕÕ¡£
ÖÁÉÙÿÌìÒ»´Î£¬ ½« RDB ±¸·Ýµ½ÄãµÄÊý¾ÝÖÐÐÄÖ®Í⣬ »òÕßÖÁÉÙÊDZ¸·Ýµ½ÄãÔËÐÐ Redis ·þÎñÆ÷µÄÎïÀí»úÆ÷Ö®Íâ¡£
• #! /bin/bash
•
• PATH=/usr/local/bin:$PATH
• redis-cli SAVE
•
• date=$(date +"%Y%m%d")
• cp /var/lib/redis/6379/dump.rdb /data01/cache_backup/$date.rdb
• • echo "done!"
1.3.ÈÝÔÖ±¸·Ý
Redis µÄÈÝÔÖ±¸·Ý»ù±¾ÉϾÍÊǶÔÊý¾Ý½øÐб¸·Ý£¬ ²¢½«ÕâЩ±¸·Ý´«Ë͵½¶à¸ö²»Í¬µÄÍⲿÊý¾ÝÖÐÐÄ¡£ÈÝÔÖ±¸·Ý¿ÉÒÔÔÚRedis ÔËÐв¢²úÉú¿ìÕÕµÄÖ÷Êý¾ÝÖÐÐÄ·¢ÉúÑÏÖØµÄÎÊÌâʱ£¬ ÈÔÈ»ÈÃÊý¾Ý´¦ÓÚ°²È«×´Ì¬¡£
ÒòΪºÜ¶à Redis Óû§¶¼ÊÇ´´ÒµÕߣ¬ ËûÃÇûÓдó°Ñ´ó°ÑµÄÇ®¿ÉÒÔÀË·Ñ£¬ ËùÒÔÏÂÃæ½éÉܵͼÊÇһЩʵÓÃÓÖ±ãÒ˵ÄÈÝÔÖ±¸·Ý·½·¨£º
·Amazon S3 £¬ÒÔ¼°ÆäËûÀàËÆ S3 µÄ·þÎñ£¬ÊÇÒ»¸ö¹¹½¨ÔÖÄѱ¸·ÝϵͳµÄºÃµØ·½¡£ ×î¼òµ¥µÄ·½·¨¾ÍÊǽ«ÄãµÄÿСʱ»òÕßÿÈÕ RDB ±¸·Ý¼ÓÃܲ¢´«Ë͵½ S3 ¡£ ¶ÔÊý¾ÝµÄ¼ÓÃÜ¿ÉÒÔͨ¹ý gpg -c ÃüÁîÀ´Íê³É£¨¶Ô³Æ¼ÓÃÜģʽ£©¡£ ¼ÇµÃ°ÑÄãµÄÃÜÂë·Åµ½¼¸¸ö²»Í¬µÄ¡¢°²È«µÄµØ·½È¥£¨±ÈÈçÄã¿ÉÒÔ°ÑÃÜÂë¸´ÖÆ¸øÄã×éÖ¯Àï×îÖØÒªµÄÈËÎ¡£ ͬʱʹÓöà¸ö´¢´æ·þÎñÀ´±£´æÊý¾ÝÎļþ£¬¿ÉÒÔÌáÉýÊý¾ÝµÄ°²È«ÐÔ¡£
´«ËÍ¿ìÕÕ¿ÉÒÔʹÓà SCP À´Íê³É£¨SSH µÄ×é¼þ£©¡£ ÒÔÏÂÊǼòµ¥²¢ÇÒ°²È«µÄ´«ËÍ·½·¨£º ÂòÒ»¸öÀëÄãµÄÊý¾ÝÖÐÐķdz£Ô¶µÄ VPS £¬ ×°ÉÏ SSH £¬ ´´½¨Ò»¸öÎÞ¿ÚÁîµÄ SSH ¿Í»§¶Ë key £¬ ²¢½«Õâ¸ö key Ìí¼Óµ½ VPS µÄauthorized_keys ÎļþÖУ¬ ÕâÑù¾Í¿ÉÒÔÏòÕâ¸ö VPS ´«ËÍ¿ìÕÕ±¸·ÝÎļþÁË¡£ ΪÁË´ïµ½×îºÃµÄÊý¾Ý°²È«ÐÔ£¬ÖÁÉÙÒª´ÓÁ½¸ö²»Í¬µÄÌṩÉÌÄÇÀï¸÷¹ºÂòÒ»¸ö VPS À´½øÐÐÊý¾ÝÈÝÔÖ±¸·Ý¡£
·ÐèҪעÒâµÄÊÇ£¬ ÕâÀàÈÝÔÖϵͳÈç¹ûûÓÐСÐĵؽøÐд¦ÀíµÄ»°£¬ ÊǺÜÈÝÒ×ʧЧµÄ¡£×îµÍÏÞ¶ÈÏ£¬ ÄãÓ¦¸ÃÔÚÎļþ´«ËÍÍê±ÏÖ®ºó£¬ ¼ì²éËù´«Ëͱ¸·ÝÎļþµÄÌå»ýºÍÔʼ¿ìÕÕÎļþµÄÌå»ýÊÇ·ñÏàͬ¡£ Èç¹ûÄãʹÓõÄÊÇVPS £¬ ÄÇô»¹¿ÉÒÔͨ¹ý±È¶ÔÎļþµÄ SHA1 УÑéºÍÀ´È·ÈÏÎļþÊÇ·ñ´«ËÍÍêÕû¡£
ÁíÍ⣬ Ä㻹ÐèÒªÒ»¸ö¶ÀÁ¢µÄ¾¯±¨ÏµÍ³£¬ ÈÃËüÔÚ¸ºÔð´«Ëͱ¸·ÝÎļþµÄ´«ËÍÆ÷£¨transfer£©Ê§Áéʱ֪ͨÄã¡£
²ÂÄãϲ»¶
redis³Ö¾Ã»¯£ºRDB³Ö¾Ã»¯ÓëAOF³Ö¾Ã»¯
±±¾©Ð£Çø