±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÁËRedisÖÐʵÏÖÊÂÎñµÄ¼¸¸öÃüÁRedisÊÂÎñ´Ó¿ªÊ¼µ½½áÊøÍ¨³£»áͨ¹ýÈý¸ö½×¶Î£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔAIÆËÉ磬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼¡¢ÍƼö¡£ |
|
ËùνÊÂÎñ(Transaction) £¬ÊÇÖ¸×÷Ϊµ¥¸öÂß¼¹¤×÷µ¥ÔªÖ´ÐеÄһϵÁвÙ×÷¡£ÊÂÎñ±ØÐëÂú×ãACIDÔÔò(Ô×ÓÐÔ¡¢Ò»ÖÂÐÔ¡¢¸ôÀëÐԺͳ־ÃÐÔ)¡£¼òµ¥À´ËµÊÂÎñÆäʵ¾ÍÊÇ´ò°üÒ»×é²Ù×÷£¨»òÕßÃüÁ×÷Ϊһ¸öÕûÌ壬ÔÚÊÂÎñ´¦Àíʱ½«Ë³ÐòÖ´ÐÐÕâЩ²Ù×÷£¬²¢·µ»Ø½á¹û£¬Èç¹ûÆäÖÐÈκÎÒ»¸ö»·½Ú³ö´í£¬ËùÓеIJÙ×÷½«±»»Ø¹ö¡£
ÔÚRedisÖÐʵÏÖÊÂÎñÖ÷ÒªÒÀ¿¿ÒÔϼ¸¸öÃüÁîÀ´ÊµÏÖ£º

RedisÊÂÎñ´Ó¿ªÊ¼µ½½áÊøÍ¨³£»áͨ¹ýÈý¸ö½×¶Î:
1.ÊÂÎñ¿ªÊ¼
2.ÃüÁîÈë¶Ó
3.ÊÂÎñÖ´ÐÐ
ÒÔÏÂÊÇÒ»¸ö×î¼òµ¥µÄRedisÊÂÎñÁ÷³Ì£º

µÚÒ»²½¸úÆäËûµÄ¹ØÏµÐÍÊý¾Ý¿âÀàËÆ£¬Ò²ÊÇÐèÒª¿ªÆôÒ»¸öÊÂÎñ£¬ÔÚRedisÖеÄÃüÁîÈçÏ£º

RedisÖÐʹÓÃMULTIÃüÁî±ê¼ÇÊÂÎñµÄ¿ªÊ¼£¬¿ÉÒÔÀí½âΪÔÚ´«Í³¹ØÏµÐÍÊý¾Ý¿âÖеÄBEGIN TRANCATIONÓï¾ä£¬Redis½«Ö´ÐиÃÃüÁîµÄ¿Í»§¶Ë´Ó·ÇÊÂÎñ״̬Çл»³ÉÊÂÎñ״̬£¬ÕâÒ»Çл»ÊÇͨ¹ýÔÚ¿Í»§¶Ë״̬µÄflagsÊôÐÔÖдò¿ªREDIS_MULTI±êʶÍê³É,
ÎÒÃÇ¿´ÏÂRedisÖжÔÓ¦²¿·ÖµÄÔ´ÂëʵÏÖ£º

ÔÚ´ò¿ªÊÂÎñ±êʶµÄ¿Í»§¶ËÀÕâЩÃüÁî¶¼»á±»ÔÝ´æµ½Ò»¸öÃüÁî¶ÓÁÐÀ²»»áÒòΪÓû§»áµÄÊäÈë¶øÁ¢¼´Ö´ÐС£
µÚ¶þ²½¾ÍÊÇÖ´ÐÐÊÂÎñÄÚ·»ù£¬¼´ÕæÕýµÄÒµÎñÂß¼£º

×îºóÒ»¸ö½×¶ÎÊÇÌá½»ÊÂÎñ(»òÕ߻عöÊÂÎñ)£º
ÕâÁ½¸öÃüÁî¿É±»ÊÓΪµÈͬÓÚ¹ØÏµÐÍÊý¾Ý¿âÖеÄCOMMIT/ROLLBACKÓï¾ä¡£
ÕâÀïÐèҪעÒâµÄÊÇ£¬ÔÚ¿Í»§¶Ë´ò¿ªÁËÊÂÎñ±êʶºó£¬Ö»ÓÐÃüÁEXEC£¬DISCARD£¬WATCH£¬MULTIÃüÁî»á±»Á¢¼´Ö´ÐУ¬ÆäËüÃüÁî·þÎñÆ÷²»»áÁ¢¼´Ö´ÐУ¬¶øÊǽ«ÕâЩÃüÁî·ÅÈëµ½Ò»¸öÊÂÎñ¶ÓÁÐÀïÃæ£¬È»ºóÏò¿Í»§¶Ë·µ»ØÒ»¸öQUEUED»Ø¸´
£»Redis¿Í»§¶ËÓÐ×Ô¼ºµÄÊÂÎñ״̬£¬Õâ¸ö״̬±£´æÔÚ¿Í»§¶Ë״̬mstateÊôÐÔÖУ¬mstateµÄ½á¹¹ÌåÀàÐÍÊÇmultiState£¬ÎÒÃÇ¿´ÏÂmultiStateµÄ¶¨Ò壺

ÎÒÃÇÔÙ¿´Ï½ṹÌåÀàÐÍmultiCmdµÄ½á¹¹£º

ÊÂÎñ¶ÓÁÐÒÔÏȽøÏȳöµÄ±£´æ·½·¨£¬½ÏÏÈÈë¶ÓµÄÃüÁî»á±»·Åµ½Êý×éµÄÇ°Ãæ£¬¶ø½ÏºóÈë¶ÓµÄÃüÁîÔò»á±»·Åµ½Êý×éµÄºóÃæ¡£
µ±¿ªÆôÊÂÎñ±êʶµÄ¿Í»§¶Ë·¢ËÍEXECÃüÁîµÄʱºò£¬·þÎñÆ÷¾Í»áÖ´ÐУ¬¿Í»§¶Ë¶ÔÓ¦µÄÊÂÎñ¶ÓÁÐÀïµÄÃüÁÎÒÃÇÀ´¿´ÏÂEXEC
µÄʵÏÖϸ½Ú£º

×îºóÎÒÃÇÔٻعËÒ»ÏÂÊÂÎñ±¾ÉíµÄÌØÐÔ£¬ ÔÚ´«Í³¹ØÏµÐÍÊý¾Ý¿âÖеÄÊÂÎñ±ØÐëÒÀ¿¿ACIDÀ´±£Ö¤ÊÂÎñµÄ¿É¿¿ÐԺͰ²È«ÐÔ£¬ÔÚRedisÖÐÊÂÎñ×ÜÊǾßÓÐÒ»ÖÂÐÔ(Consistency)ºÍ¸ôÀëÐÔ(Isolation)£¬²¢ÇÒµ±RedisÔËÐÐÔÚijÖÖÌØ¶¨µÄ³Ö¾Ã»¯Ä£Ê½Ï£¬ÊÂÎñÒ²¾ßÓÐÄ;ÃÐÔ(Durability)£»
µ«ÊDz¢²»×ÜÊÇÄܹ»±£Ö¤Ô×ÓÐÔ(Atomicity)£¬ÔÚÕý³£×´Ì¬ÏÂÒ»¸öÊÂÎñµÄËùÓÐÃüÁîÊÇÄܰ´ÕÕÔ×ÓÐÔµÄÔÔòÖ´Ðе쬵«ÊÇÖ´ÐеÄÖÐ;Óöµ½´íÎ󣬲»»á»Ø¹ö£¬¶øÊǼÌÐøÖ´ÐкóÐøÃüÁî,
ÈçÏ£º

Èç¹ûÔÚset k2 v2´¦Ê§°Ü£¬set k1Òѳɹ¦²»»á»Ø¹ö£¬set k3»¹»á¼ÌÐøÖ´ÐУ»RedisµÄÊÂÎñºÍ´«Í³µÄ¹ØÏµÐÍÊý¾Ý¿âÊÂÎñµÄ×î´óÇø±ðÔÚÓÚ£¬Redis²»Ö§³ÖÊÂÎñµÄ»Ø¹ö»úÖÆ£¬¼´Ê¹ÊÂÎñ¶ÓÁÐÖеÄij¸öÃüÁîÔÚÖ´ÐÐÆÚ¼ä³öÏÖ´íÎó£¬Õû¸öÊÂÎñÒ²»á¼ÌÐøÖ´ÐÐÏÂÈ¥£¬Ö±µ½½«ÊÂÎñ¶ÓÁÐÖеÄËùÓÐÃüÁî¶¼Ö´ÐÐÍê±ÏΪֹ£¬ÎÒÃÇ¿´ÏÂÃæµÄÀý×Ó£º

RedisµÄ×÷ÕßÔÚÊÂÎñ¹¦ÄܵÄÎĵµÖнâÊÍ˵£¬²»Ö§³ÖÊÂÎñ»Ø¹öÊÇÒòΪÕâÖÖ¸´ÔӵŦÄܺÍRedis×·ÇóµÄ¼òµ¥¸ßЧµÄÉè¼ÆÖ÷Ö¼²»·ûºÏ£¬²¢ÇÒËûÈÏΪ£¬RedisÊÂÎñµÄÖ´ÐÐʱ£¬´íÎóͨ³£¶¼ÊDZà³Ì´íÎóÔì³ÉµÄ£¬ÕâÖÖ´íÎóͨ³£Ö»»á³öÏÖÔÚ¿ª·¢»·¾³ÖУ¬¶øºÜÉÙ»áÔÚʵ¼ÊµÄÉú²ú»·¾³ÖгöÏÖ£¬ËùÒÔËûÈÏΪûÓбØÒªÎªRedis¿ª·¢ÊÂÎñ»Ø¹ö¹¦ÄÜ¡£ËùÒÔÎÒÃÇÔÚÌÖÂÛRedisÊÂÎñ»Ø¹öµÄʱºò£¬Ò»¶¨ÒªÇø·ÖÃüÁî·¢Éú´íÎóµÄʱºò¡£
|