±à¼ÍƼö: |
±¾ÎÄÖ÷ÒªÒÔÑÐò½¥½øµÄ·½Ê½À´½²£¬Redis¼¯Èº¼Ü¹¹µÄÑݽø£¬Ï£Íû¶ÔÄúÓÐËù°ïÖú¡£
±¾ÎÄÀ´×Ô²©¿ÍÔ°£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼¡¢ÍƼö¡£ |
|
ÀÏ¹æ¾Ø£¬ÎÒÒÔÑÐò½¥½øµÄ·½Ê½À´½²£¬ÎÒÒ»¹²¾Àú¹ýÈýÌ×¼¯Èº¼Ü¹¹µÄÑݽø£¡
Replication+Sentinel
ÕâÌ׼ܹ¹Ê¹ÓõÄÊÇÉçÇø°æ±¾ÍƳöµÄÔÉú¸ß¿ÉÓýâ¾ö·½°¸£¬Æä¼Ü¹¹Í¼ÈçÏ£¡

ÕâÀïSentinelµÄ×÷ÓÃÓÐÈý¸ö:
¼à¿Ø:Sentinel »á²»¶ÏµÄ¼ì²éÖ÷·þÎñÆ÷ºÍ´Ó·þÎñÆ÷ÊÇ·ñÕý³£ÔËÐС£
֪ͨ:µ±±»¼à¿ØµÄij¸öredis·þÎñÆ÷³öÏÖÎÊÌ⣬Sentinelͨ¹ýAPI½Å±¾Ïò¹ÜÀíÔ±»òÕ߯äËûµÄÓ¦ÓóÌÐò·¢ËÍ֪ͨ¡£
×Ô¶¯¹ÊÕÏ×ªÒÆ:µ±Ö÷½Úµã²»ÄÜÕý³£¹¤×÷ʱ£¬Sentinel»á¿ªÊ¼Ò»´Î×Ô¶¯µÄ¹ÊÕÏ×ªÒÆ²Ù×÷£¬Ëü»á½«ÓëʧЧÖ÷½ÚµãÊÇÖ÷´Ó¹ØÏµ
µÄÆäÖÐÒ»¸ö´Ó½ÚµãÉý¼¶ÎªÐµÄÖ÷½Úµã£¬²¢ÇÒ½«ÆäËûµÄ´Ó½ÚµãÖ¸ÏòеÄÖ÷½Úµã¡£
¹¤×÷ÔÀí¾ÍÊÇ£¬µ±Masterå´»úµÄʱºò£¬Sentinel»áÑ¡¾Ù³öеÄMaster£¬²¢¸ù¾ÝSentinelÖÐclient-reconfig-script½Å±¾ÅäÖõÄÄÚÈÝ£¬È¥¶¯Ì¬ÐÞ¸ÄVIP(ÐéÄâIP)£¬½«VIP(ÐéÄâIP)Ö¸ÏòеÄMaster¡£ÎÒÃǵĿͻ§¶Ë¾ÍÁ¬ÏòÖ¸¶¨µÄVIP¼´¿É£¡
¹ÊÕÏ·¢ÉúºóµÄ×ªÒÆÇé¿ö£¬¿ÉÒÔÀí½âΪÏÂͼ

ȱÏÝ:
(1)Ö÷´ÓÇл»µÄ¹ý³ÌÖлᶪÊý¾Ý
(2)RedisÖ»Äܵ¥µãд£¬²»ÄÜˮƽÀ©ÈÝ
Proxy+Replication+Sentinel
ÕâÀïµÄProxyĿǰÓÐÁ½ÖÖÑ¡Ôñ:CodisºÍTwemproxy¡£ÎÒ¾ÀúÕâÌ׼ܹ¹µÄʱ¼äΪ2015Ä꣬µ±Ê±ÎÒºÃÏñ×Éѯ¹ýÎÒµÄÖ÷¹ÜΪɶ²»ÓÃCodisºÍRedis¹ÙÍøµÄRedis
Cluster¡£ÔÒòÓжþ:
¾Ý˵ÊÇÒòΪCodis¿ªÔ´µÄ±È½ÏÍí£¬¿¼Âǵ½¸ü»»×é¼þµÄ³É±¾ÎÊÌâ¡£±Ï¾¹±¾À´ÔËÐкúõĶ«Î÷£¬ÄãÔÙÈ¥»»×é¼þ£¬·çÏÕÊǺܴóµÄ¡£
Redis ClusterÔÚ2015Ä껹ÊÇÊÔÓð棬²»±£Ö¤»áÓöµ½Ê²Ã´ÎÊÌ⣬Òò´Ë²»¸Ò³¢ÊÔ¡£
ËùÒÔÎÒû½Ó´¥¹ýCodis£¬Ö®Ç°Ò»Ö±ÓõÄÊÇTwemproxy×÷ΪProxy¡£
ÕâÀïÒÔTwemproxyΪÀý˵Ã÷£¬ÈçÏÂͼËùʾ

¹¤×÷ÔÀíÈçÏÂ
ǰ¶ËʹÓÃTwemproxy+KeepAlived×ö´úÀí£¬½«Æäºó¶ËµÄ¶ą̀RedisʵÀý·ÖƬ½øÐÐͳһ¹ÜÀíÓë·ÖÅä
ÿһ¸ö·ÖƬ½ÚµãµÄSlave¶¼ÊÇMasterµÄ¸±±¾ÇÒÖ»¶Á
Sentinel³ÖÐø²»¶ÏµÄ¼à¿ØÃ¿¸ö·ÖƬ½ÚµãµÄMaster£¬µ±Master³öÏÖ¹ÊÕÏÇÒ²»¿ÉÓÃ״̬ʱ£¬Sentinel»á֪ͨ/Æô¶¯×Ô¶¯¹ÊÕÏ×ªÒÆµÈ¶¯×÷
Sentinel ¿ÉÒÔÔÚ·¢Éú¹ÊÕÏ×ªÒÆ¶¯×÷ºó´¥·¢ÏàÓ¦½Å±¾£¨Í¨¹ý client-reconfig-script
²ÎÊýÅäÖà £©£¬½Å±¾»ñÈ¡µ½×îеÄMasterÀ´ÐÞ¸ÄTwemproxyÅäÖÃ
ȱÏÝ:
(1)²¿Êð½á¹¹³¬¼¶¸´ÔÓ
(2)¿ÉÀ©Õ¹ÐԲ½øÐÐÀ©ËõÈÝÐèÒªÊÖ¶¯¸ÉÔ¤
(3)ÔËά²»·½±ã
Redis Cluster
ÎÒ¾ÀúÕâÌ׼ܹ¹µÄʱ¼äΪ2017Ä꣬ÔÚÕâ¸öʱ¼äRedis ClusterÒѾºÜ³ÉÊìÁË£¡ÄãÃÇÔÚÍøÉÏÄܲ鵽µÄ´ó²¿·Öȱµã£¬ÔÚÎÒ½Ó´¥µ½µÄʱºò»ù±¾ÒѾ½â¾ö!
±ÈÈçûÓÐÍêÉÆµÄÔËά¹¤¾ß£¿¿ÉÒÔ²ÎÕÕÒ»ÏÂËѺü³öµÄCacheCloud¡£
±ÈÈçûÓй«Ë¾ÔÚÉú²úÓùý£¿ÎÒ½Ó´¥µ½µÄʱºò£¬°Ù¶ÈÌù°É£¬ÃÀÍŵȴ󳧶¼ÓùýÁË¡£
±ÈÈçûÓÐRelease°æ£¿ÎÒ½Ó´¥µ½µÄʱºò¾àÀëRedis Cluster·¢²¼Release°æÒѾºÜ¾Ã¡£
¶øÇұϾ¹ÊǹÙÍø³öµÄ£¬¿Ï¶¨»áһֱά»¤¡¢¸üÐÂÏÂÈ¥£¬Î´À´±Ø¶¨»á¸ü¼Ó³ÉÊì¡¢Îȶ¨¡£»»¾ä»°Ëµ£¬Redis²»µ¹£¬Redis
Cluster¾Í²»»á·ÅÆúά»¤¡£ËùÒÔ£¬ÎÒÍÆ¼ö»¹ÊÇÕâÌ׼ܹ¹!
ÈçÏÂͼËùʾ

¹¤×÷ÔÀíÈçÏÂ
¿Í»§¶ËÓëRedis½ÚµãÖ±Á¬,²»ÐèÒªÖмäProxy²ã£¬Ö±½ÓÁ¬½ÓÈÎÒâÒ»¸öMaster½Úµã
¸ù¾Ý¹«Ê½HASH_SLOT=CRC16(key) mod 16384£¬¼ÆËã³öÓ³Éäµ½Äĸö·ÖƬÉÏ£¬È»ºóRedis»áÈ¥ÏàÓ¦µÄ½Úµã½øÐвÙ×÷
¾ßÓÐÈçÏÂÓŵã:
(1)ÎÞÐèSentinelÉÚ±ø¼à¿Ø£¬Èç¹ûMaster¹ÒÁË£¬Redis ClusterÄÚ²¿×Ô¶¯½«SlaveÇл»Master
(2)¿ÉÒÔ½øÐÐˮƽÀ©ÈÝ
(3)Ö§³Ö×Ô¶¯»¯Ç¨ÒÆ£¬µ±³öÏÖij¸öSlaveå´»úÁË£¬ÄÇô¾ÍÖ»ÓÐMasterÁË£¬ÕâʱºòµÄ¸ß¿ÉÓÃÐÔ¾ÍÎÞ·¨ºÜºÃµÄ±£Ö¤ÁË£¬ÍòÒ»masterҲ崻úÁË£¬Õ¦°ìÄØ£¿
Õë¶ÔÕâÖÖÇé¿ö£¬Èç¹û˵ÆäËûMasterÓжàÓàµÄSlave £¬¼¯Èº×Ô¶¯°Ñ¶àÓàµÄSlaveÇ¨ÒÆµ½Ã»ÓÐSlaveµÄMaster
ÖС£
ȱµã:
(1)ÅúÁ¿²Ù×÷ÊǸö¿Ó
(2)×ÊÔ´¸ôÀëÐԽϲÈÝÒ׳öÏÖÏ໥ӰÏìµÄÇé¿ö¡£
Ñ̸ç²Êµ°
ÔÚÃæÊÔÖÐÈç¹ûÅöµ½ÏÂÁÐÎÊÌ⣬ÈçºÎÓ¦ÓÃÉϱ¾ÆªµÄÖªÊ¶ÄØ£¿ÏÈÃ÷È·Ò»µã£¬ÎÒÍÆ¼öµÄÊÇRedis Cluster¡£
OK£¬¿ªÊ¼¾ÙÀý˵Ã÷
ÎÊÌâ1:¶®RedisÊÂÎñô£¿
Õý³£°æ£ºRedisÊÂÎñÊÇһЩÁÐredisÃüÁîµÄ¼¯ºÏ,blabla...
¸ßµ÷°æ: ÎÒÃÇÔÚÉú²úÉϲÉÓõÄÊÇRedis Cluster¼¯Èº¼Ü¹¹£¬²»Í¬µÄkeyÊÇÓпÉÄÜ·ÖÅäÔÚ²»Í¬µÄRedis½ÚµãÉϵģ¬ÔÚÕâÖÖÇé¿öÏÂRedisµÄÊÂÎñ»úÖÆÊDz»ÉúЧµÄ¡£Æä´Î£¬RedisÊÂÎñ²»Ö§³Ö»Ø¹ö²Ù×÷£¬¼òÖ±ÊǼ¦Àߣ¡ËùÒÔ»ù±¾²»Óã¡
ÎÊÌâ2:RedisµÄ¶àÊý¾Ý¿â»úÖÆ£¬Á˽â¶àÉÙ£¿
Õý³£°æ£ºRedisÖ§³Ö¶à¸öÊý¾Ý¿â£¬²¢ÇÒÿ¸öÊý¾Ý¿âµÄÊý¾ÝÊǸôÀëµÄ²»Äܹ²Ïí£¬µ¥»úϵÄredis¿ÉÒÔÖ§³Ö16¸öÊý¾Ý¿â£¨db0
~ db15£©
¸ßµ÷°æ: ÔÚRedis Cluster¼¯Èº¼Ü¹¹ÏÂÖ»ÓÐÒ»¸öÊý¾Ý¿â¿Õ¼ä£¬¼´db0¡£Òò´Ë£¬ÎÒÃÇûÓÐʹÓÃRedisµÄ¶àÊý¾Ý¿â¹¦ÄÜ£¡
ÎÊÌâ3:Redis¼¯Èº»úÖÆÖУ¬Äã¾õµÃÓÐʲô²»×ãµÄµØ·½Âð£¿
Õý³£°æ: ²»ÖªµÀ
¸ßµ÷°æ: ¼ÙÉèÎÒÓÐÒ»¸ökey£¬¶ÔÓ¦µÄvalueÊÇHashÀàÐ͵ġ£Èç¹ûHash¶ÔÏó·Ç³£´ó£¬ÊDz»Ö§³ÖÓ³Éäµ½²»Í¬½ÚµãµÄ£¡Ö»ÄÜÓ³Éäµ½¼¯ÈºÖеÄÒ»¸ö½ÚµãÉÏ£¡»¹ÓоÍÊÇ×öÅúÁ¿²Ù×÷±È½ÏÂé·³£¡
ÎÊÌâ4:¶®RedisµÄÅúÁ¿²Ù×÷ô£¿
Õý³£°æ: ¶®Ò»µã¡£±ÈÈçmset¡¢mget²Ù×÷µÈ£¬blabla
¸ßµ÷°æ: ÎÒÃÇÔÚÉú²úÉϲÉÓõÄÊÇRedis Cluster¼¯Èº¼Ü¹¹£¬²»Í¬µÄkey»á»®·Öµ½²»Í¬µÄslotÖУ¬Òò´ËÖ±½ÓʹÓÃmset»òÕßmgetµÈ²Ù×÷ÊÇÐв»Í¨µÄ¡£
ÎÊÌâ5:ÄÇÔÚRedis¼¯ÈºÄ£Ê½Ï£¬ÈçºÎ½øÐÐÅúÁ¿²Ù×÷£¿
Õý³£°æ:²»ÖªµÀ
¸ßµ÷°æ:Õâ¸öÎÊÌâÆäʵ¿ÉÒÔдһƪÎÄÕÂÁË£¬¸ÄÌìд¡£ÕâÀï˵һÖÖÓÐÒ»¸öºÜ¼òµ¥µÄ´ð·¨£¬×ã¹»ÃæÊÔÓ᣼´:
Èç¹ûÖ´ÐеÄkeyÊýÁ¿±È½ÏÉÙ£¬¾Í²»ÓÃmgetÁË£¬¾ÍÓô®ÐÐget²Ù×÷¡£Èç¹ûÕæµÄÐèÒªÖ´ÐеÄkeyºÜ¶à£¬¾ÍʹÓÃHashtag±£Ö¤ÕâЩkeyÓ³É䵽ͬһ̨redis½ÚµãÉÏ¡£¼òµ¥À´ËµÓï·¨ÈçÏÂ
¶ÔÓÚkeyΪ{foo}.student1¡¢{foo}.student2£¬{foo}student3£¬ÕâÀàkeyÒ»¶¨ÊÇÔÚͬһ¸öredis½ÚµãÉÏ¡£ÒòΪkeyÖС°{}¡±Ö®¼äµÄ×Ö·û´®¾ÍÊǵ±Ç°keyµÄhash
tags£¬ Ö»ÓÐkeyÖÐ{ }ÖеIJ¿·Ö²Å±»ÓÃÀ´×öhash£¬Òò´Ë¼ÆËã³öÀ´µÄredis½ÚµãÒ»¶¨ÊÇͬһ¸ö!
ps:Èç¹ûÄãÓõÄÊÇProxy·ÖƬ¼¯Èº¼Ü¹¹£¬ÀýÈçCodisÕâÖÖ£¬»á½«mget/msetµÄ¶à¸ökey²ð·Ö³É¶à¸öÃüÁî·¢Íù²»Í¬µÃredisʵÀý£¬ÕâÀï²»¶à˵¡£ÎÒÍÆ¼ö´ðµÄ»¹ÊÇredis
cluster¡£
ÎÊÌâ6:ÄãÃÇÓжÔRedis×ö¶Áд·ÖÀëô£¿
Õý³£°æ:ûÓÐ×ö£¬ÖÁÓÚÔÒò¶î¡£¡£¡£¶î¡£¡£¡£¶î¡£¡£Ã»°ì·¨ÁË£¬Ó²×ÅͷƤ³¶~
¸ßµ÷°æ:²»×ö¶Áд·ÖÀë¡£ÎÒÃÇÓõÄÊÇRedis ClusterµÄ¼Ü¹¹£¬ÊÇÊôÓÚ·ÖÆ¬¼¯ÈºµÄ¼Ü¹¹¡£¶øredis±¾ÉíÔÚÄÚ´æÉϲÙ×÷£¬²»»áÉæ¼°IOÍÌÍ£¬¼´Ê¹¶Áд·ÖÀëÒ²²»»áÌáÉýÌ«¶àÐÔÄÜ£¬RedisÔÚÉú²úÉϵÄÖ÷ÒªÎÊÌâÊÇ¿¼ÂÇÈÝÁ¿£¬µ¥»ú×î¶à10-20G£¬keyÌ«¶à½µµÍredisÐÔÄÜ.Òò´Ë²ÉÓÃ·ÖÆ¬¼¯Èº½á¹¹£¬ÒѾÄܱ£Ö¤ÁËÎÒÃǵÄÐÔÄÜ¡£Æä´Î£¬ÓÃÉÏÁ˶Áд·ÖÀëºó£¬»¹Òª¿¼ÂÇÖ÷´ÓÒ»ÖÂÐÔ£¬Ö÷´ÓÑÓ³ÙµÈÎÊÌ⣬ͽÔöÒµÎñ¸´ÔÓ¶È¡£
|