Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Redis ÊÂÎñ
 
×÷Õߣº hulunbao
  2209  次浏览      28
2020-11-18 
 
±à¼­ÍƼö:

±¾ÎÄÖ÷Òª½éÉÜÁËÊÂÎñÊÇʲô?ÊÂÎñµÄÌØÐÔ¡¢ÎªÊ²Ã´Ê¹ÓÃÊÂÎñÒÔ¼°Ê¹ÓÃÊÂÎñµÄÕû¸öÁ÷³Ì¡£
±¾ÎÄÀ´×Ô²©¿ÍÔ°£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼­¡¢ÍƼö¡£

ÊÂÎñ

ÊÂÎñÖ¸µÄ³ÌÐòÖÐһϵÁÐÑÏÃܵÄÂß¼­²Ù×÷£¬ÆäÖаüº¬µÄ²Ù×÷±ØÐëÒªÍê³É£¬·ñÔòÔÚÿ¸ö²Ù×÷Öеĸü¸Ä¶¼»á±»³·Ïú¡£

¾Ù¸ö¼òµ¥µÄÀý×Ó£ºÒ»ÈºÑ¼×Ó¹ýºÓ£¬ÒªÃ´¶¼¹ýÈ¥£¬ÒªÃ´¶¼²»¹ýÈ¥¡£

ÊÂÎñµÄÌØÐÔ

Ô­×ÓÐÔ£¨Atomicity£©£º²Ù×÷ÕâЩָÁîʱ£¬ÒªÃ´È«²¿Ö´Ðгɹ¦£¬ÒªÃ´È«²¿²»Ö´ÐС£Ö»ÒªÆäÖÐÒ»¸öÖ¸ÁîÖ´ÐÐʧ°Ü£¬ËùÓеÄÖ¸Áî¶¼Ö´ÐÐʧ°Ü£¬Êý¾Ý½øÐлعö£¬»Øµ½Ö´ÐÐÖ¸ÁîǰµÄÊý¾Ý״̬¡£

Ò»ÖÂÐÔ£¨Consistency£©£ºÊÂÎñµÄÖ´ÐÐʹÊý¾Ý´ÓÒ»¸ö״̬ת»»ÎªÁíÒ»¸ö״̬£¬µ«ÊǶÔÓÚÕû¸öÊý¾ÝµÄÍêÕûÐÔ±£³ÖÎȶ¨¡££¨¿ÉÀí½âΪ£º¼´AÕË»§Ö»Òª¼õÈ¥ÁË100£¬BÕË»§Ôò±Ø¶¨¼ÓÉÏÁË100£©

¸ôÀëÐÔ£¨Isolation£©£º¸ôÀëÐÔÊǵ±¶à¸öÓû§²¢·¢·ÃÎÊÊý¾Ý¿âʱ£¬±ÈÈç²Ù×÷ͬһÕűíʱ£¬Êý¾Ý¿âΪÿһ¸öÓû§¿ªÆôµÄÊÂÎñ£¬²»Äܱ»ÆäËûÊÂÎñµÄ²Ù×÷Ëù¸ÉÈÅ£¬¶à¸ö²¢·¢ÊÂÎñÖ®¼äÒªÏ໥¸ôÀë¡£

³Ö¾ÃÐÔ£¨Durability£©£ºµ±ÊÂÎñÕýÈ·Íê³Éºó£¬Ëü¶ÔÓÚÊý¾ÝµÄ¸Ä±äÊÇÓÀ¾ÃÐԵġ£

ΪʲôʹÓÃÊÂÎñ

ÔÚ´«Í³µÄ¹ØÏµÐÍÊý¾Ý¿âÖУ¬³£³£Ê¹ÓÃÊÂÎñµÄACID ÐÔÖÊÀ´±£Ö¤Êý¾ÝµÄÒ»ÖÂÐÔ¡¢ÍêÕûÐÔ¡£

RedisÊÂÎñ

RedisÊÂÎñ£º°Ñ¶à¸öredisÃüÁî·Åµ½¶ÓÁУ¬È»ºóÒ»´ÎÐÔµÄ˳ÐòÖ´ÐС£²¢ÇÒÔÚÖ´Ðйý³ÌÖв»»á±»Öжϣ¬Ö´ÐÐÍêËùÓжÓÁÐÃüÁîºó²ÅÖ´ÐÐÆäËû¿Í»§¶ËÆäËûÃüÁî¡£

ÏÂÃæ¾Ù¸ö¼òµ¥µÄÀý×Ó£¬MULTI ¿ªÆôÒ»¸öÊÂÎñ£¬ È»ºó½«¶à¸öÃüÁîÈë¶Óµ½ÊÂÎñÖУ¬ ×îºóÓÉ EXEC ÃüÁî´¥·¢ÊÂÎñ£¬ Ò»²¢Ö´ÐÐÊÂÎñÖеÄËùÓÐÃüÁî

Ò»¸öÊÂÎñ´Ó¿ªÊ¼µ½Ö´Ðо­ÀúÈý¸ö½×¶Î

¿ªÊ¼ÊÂÎñ

ÃüÁîÈë¶Ó

Ö´ÐÐÊÂÎñ

¿ªÊ¼ÊÂÎñ

MULTI ÃüÁîµÄÖ´ÐбêÖ¾×ÅÊÂÎñµÄ¿ªÊ¼£¬Õâ¸öÃüÁî×öµÄ¾ÍÊÇ£¬ ½«¿Í»§¶ËµÄ REDIS_MULTI Ñ¡Ïî´ò¿ª£¬ Èÿͻ§¶Ë´Ó·ÇÊÂÎñ״̬Çл»µ½ÊÂÎñ״̬¡£

ÃüÁîÈë¶Ó

µ±¿Í»§¶Ë´¦ÓÚ·ÇÊÂÎñ״̬Ï£¬ËùÓз¢Ë͸ø·þÎñ¶ËµÄÃüÁî»áÁ¢¼´±»Ö´ÐС£

µ«¿Í»§¶ËÇл»µ½ÊÂÎñ״̬ºó£¬·þÎñ¶Ë½ÓÊܵ½¿Í»§¶ËµÄÃüÁî²»»áÁ¢¼´Ö´ÐУ¬¶øÊǰÑÕâЩÃüÁî·Åµ½ÊÂÎñ¶ÓÁÐÀï,È»ºó·µ»Ø QUEUED £¬ ±íʾÃüÁîÒÑÈë¶Ó¡£

¿ÉÒÔÓÉÒ»ÏÂÁ÷³Ìͼ±íʾ:

ÊÂÎñ¶ÓÁÐÊÇÒ»¸öÊý×飬 ÿ¸öÊý×éÏîÊǶ¼°üº¬Èý¸öÊôÐÔ£º

ÒªÖ´ÐеÄÃüÁcmd£©

ÃüÁîµÄ²ÎÊý£¨argv£©

²ÎÊýµÄ¸öÊý£¨argc£©

ÒÔÉÏͼÃüÁîΪÀý×Ó£¬ÄÇô³ÌÐò½«Îª¿Í»§¶Ë´´½¨ÒÔÏÂÊÂÎñ¶ÓÁУº

Êý×éË÷Òý cmd argv argc
0 SET ["name","xiaoming"] 2
1 SET ["age","25"] 2
2 INCR ["age"] 1

Ö´ÐÐÊÂÎñ

¿Í»§¶Ë½øÈëµ½ÊÂÎñ״̬ºó£¬¿Í»§¶Ë·¢Ë͵ÄÃüÁî²»»áÖ±½Ó±»Ö´ÐУ¬¶øÊÇ»á·Åµ½ÊÂÎñ¶ÓÁÐÀï¡£

µ«²¢²»ÊÇËùÓÐÃüÁî¶¼»á·Åµ½ÊÂÎñ¶ÓÁУ¬Èç EXEC ¡¢ DISCARD ¡¢ MULTI ºÍ WATCH ÕâËĸöÃüÁÎÞÊÓÊÂÎñ״̬£¬Ö±½Ó±»·þÎñÆ÷Ö´ÐС£

Èç¹û¿Í»§¶ËÕý´¦ÓÚÊÂÎñ״̬£¬ ÄÇôµ± EXEC ÃüÁîÖ´ÐÐʱ£¬ ·þÎñÆ÷¸ù¾Ý¿Í»§¶ËËù±£´æµÄÊÂÎñ¶ÓÁУ¬ ÒÔÏȽøÏȳö£¨FIFO£©µÄ·½Ê½Ö´ÐÐÊÂÎñ¶ÓÁÐÖеÄÃüÁ ×îÏÈÈë¶ÓµÄÃüÁî×îÏÈÖ´ÐУ¬ ¶ø×îºóÈë¶ÓµÄÃüÁî×îºóÖ´ÐС£

Ö´ÐÐÊÂÎñÖеÄÃüÁîËùµÃµÄ½á¹û»áÒÔ FIFO µÄ˳Ðò±£´æµ½Ò»¸ö»Ø¸´¶ÓÁÐÖС£

ÈçÉÏͼ£¬³ÌÐò½«Îª¶ÓÁÐÖеÄÃüÁî´´½¨ÈçÏ»ظ´¶ÓÁУº

Êý×éË÷Òý »Ø¸´ÀàÐÍ »Ø¸´ÄÚÈÝ
0 status code reply OK
1 status code reply OK
2 integer reply 26

µ±ÊÂÎñ¶ÓÁÐÀïµÄËùÓÐÃüÁî±»Ö´ÐÐÍêÖ®ºó£¬ EXEC ÃüÁî»á½«»Ø¸´¶ÓÁÐ×÷Ϊ×Ô¼ºµÄÖ´Ðнá¹û·µ»Ø¸ø¿Í»§¶Ë£¬ ¿Í»§¶Ë´ÓÊÂÎñ״̬·µ»Øµ½·ÇÊÂÎñ״̬£¬ ÖÁ´Ë£¬ ÊÂÎñÖ´ÐÐÍê±Ï¡£

ÊÂÎñ¹ý³Ìα´úÂ룺

def execute_transaction():

# ´´½¨¿Õ°×µÄ»Ø¸´¶ÓÁÐ
reply_queue = []

# È¡³öÊÂÎñ¶ÓÁÐÀïµÄËùÓÐÃüÁî¡¢²ÎÊýºÍ²ÎÊýÊýÁ¿
for cmd, argv, argc in client.transaction_queue:

# Ö´ÐÐÃüÁ²¢È¡µÃÃüÁîµÄ·µ»ØÖµ
reply = execute_redis_command(cmd, argv, argc)

# ½«·µ»ØÖµ×·¼Óµ½»Ø¸´¶ÓÁÐĩβ
reply_queue.append(reply)

# Çå³ý¿Í»§¶ËµÄÊÂÎñ״̬
clear_transaction_state(client)

# Çå¿ÕÊÂÎñ¶ÓÁÐ
clear_transaction_queue(client)

# ½«ÊÂÎñµÄÖ´Ðнá¹û·µ»Ø¸ø¿Í»§¶Ë
send_reply_to_client(client, reply_queue)

DISCARD¡¢MULTI¡¢WATCHÃüÁî

DISCRAD ÃüÁîÓÃÓÚÈ¡ÏûÒ»¸öÊÂÎñ£¬ ËüÇå¿Õ¿Í»§¶ËµÄÕû¸öÊÂÎñ¶ÓÁУ¬ È»ºó½«¿Í»§¶Ë´ÓÊÂÎñ״̬µ÷Õû»Ø·ÇÊÂÎñ״̬£¬ ×îºó·µ»Ø×Ö·û´® OK ¸ø¿Í»§¶Ë£¬ ˵Ã÷ÊÂÎñÒѱ»È¡Ïû¡£

MULTIÃüÁÆôÒ»¸öÊÂÎñ£¬Redis µÄÊÂÎñÊDz»¿ÉǶÌ׵ģ¬ µ±¿Í»§¶ËÒѾ­´¦ÓÚÊÂÎñ״̬£¬ ¶ø¿Í»§¶ËÓÖÔÙÏò·þÎñÆ÷·¢ËÍ MULTI ʱ£¬ ·þÎñÆ÷Ö»ÊǼòµ¥µØÏò¿Í»§¶Ë·¢ËÍÒ»¸ö´íÎó£¬ È»ºó¼ÌÐøµÈ´ýÆäËûÃüÁîµÄÈë¶Ó¡£ MULTI ÃüÁîµÄ·¢ËͲ»»áÔì³ÉÕû¸öÊÂÎñʧ°Ü£¬ Ò²²»»áÐÞ¸ÄÊÂÎñ¶ÓÁÐÖÐÒÑÓеÄÊý¾Ý¡£

WATCHÃüÁîÖ»ÄÜÔÚ¿Í»§¶Ë½øÈëÊÂÎñ״̬֮ǰִÐУ¬ ÔÚÊÂÎñ״̬Ï·¢ËÍ WATCH ÃüÁî»áÒý·¢Ò»¸ö´íÎó£¬ µ«Ëü²»»áÔì³ÉÕû¸öÊÂÎñʧ°Ü£¬ Ò²²»»áÐÞ¸ÄÊÂÎñ¶ÓÁÐÖÐÒÑÓеÄÊý¾Ý£¨ºÍÇ°Ãæ´¦Àí MULTI µÄÇé¿öÒ»Ñù£©

´ø WATCH µÄÊÂÎñ

WATCH ÃüÁîÓÃÓÚÔÚÊÂÎñ¿ªÊ¼Ö®Ç°¼àÊÓÈÎÒâÊýÁ¿µÄ¼ü£º µ±µ÷Óà EXEC ÃüÁîÖ´ÐÐÊÂÎñʱ£¬ Èç¹ûÈÎÒâÒ»¸ö±»¼àÊӵļüÒѾ­±»ÆäËû¿Í»§¶ËÐÞ¸ÄÁË£¬ ÄÇôÕû¸öÊÂÎñ²»ÔÙÖ´ÐУ¬ Ö±½Ó·µ»ØÊ§°Ü¡£

ÈçÏÂͼÀý×Ó£º

¿Í»§¶ËA

´Ëʱ¿Í»§¶ËBÐÞ¸ÄÁËname

¿Í»§¶ËAÖ´ÐÐÊÂÎñʧ°Ü

watchÃüÁîʵÏÖ

ÔÚÿ¸ö´ú±íÊý¾Ý¿âµÄ redis.h/redisDb ½á¹¹ÀàÐÍÖУ¬ ¶¼±£´æÁËÒ»¸ö watched_keys ×ֵ䣬 ×ÖµäµÄ¼üÊÇÕâ¸öÊý¾Ý¿â±»¼àÊӵļü£¬ ¶ø×ÖµäµÄÖµÔòÊÇÒ»¸öÁ´±í£¬ Á´±íÖб£´æÁËËùÓмàÊÓÕâ¸ö¼üµÄ¿Í»§¶Ë¡£

ÈçÏÂͼ£º

WATCH ÃüÁîµÄ×÷Ó㬠¾ÍÊǽ«µ±Ç°¿Í»§¶ËºÍÒª¼àÊӵļüÔÚ watched_keys ÖнøÐйØÁª¡£

¾Ù¸öÀý×Ó£¬Èç¹û¿Í»§¶Ëclient5Ö´ÐÐ WATCH key1 key2 ʱ£¬ÉÏͼ½«±ä³ÉÏÂÃæÕâÑù¡£

ͨ¹ý watched_keys ×ֵ䣬 Èç¹û³ÌÐòÏë¼ì²éij¸ö¼üÊÇ·ñ±»¼àÊÓ£¬ ÄÇôËüÖ»Òª¼ì²é×ÖµäÖÐÊÇ·ñ´æÔÚÕâ¸ö¼ü¼´¿É£» Èç¹û³ÌÐòÒª»ñÈ¡¼àÊÓij¸ö¼üµÄËùÓпͻ§¶Ë£¬ ÄÇôֻҪȡ³ö¼üµÄÖµ£¨Ò»¸öÁ´±í£©£¬ È»ºó¶ÔÁ´±í½øÐбéÀú¼´¿É¡£

WATCH ´¥·¢

ÈκζÔRedis¼üÖµµÄÐ޸IJÙ×÷³É¹¦ºó£¬multi.c/touchWatchedKey º¯Êý¶¼»á±»µ÷Óã¬Ëü¼ì²éÊý¾Ý¿âµÄ watched_keys ×ֵ䣬 ¿´ÊÇ·ñÓпͻ§¶ËÔÚ¼àÊÓÒѾ­±»ÃüÁîÐ޸ĵļü£¬ Èç¹ûÓеϰ£¬ ³ÌÐò½«ËùÓмàÊÓÕâ¸ö/ÕâЩ±»Ð޸ļüµÄ¿Í»§¶ËµÄ REDIS_DIRTY_CAS Ñ¡Ïî´ò¿ª£º

µ±¿Í»§¶Ë·¢ËÍ EXEC ÃüÁî¡¢´¥·¢ÊÂÎñÖ´ÐÐʱ£¬ ·þÎñÆ÷»á¶Ô¿Í»§¶ËµÄ״̬½øÐмì²é£º

Èç¹û¿Í»§¶ËµÄ REDIS_DIRTY_CAS Ñ¡ÏîÒѾ­±»´ò¿ª£¬ÄÇô˵Ã÷±»¿Í»§¶Ë¼àÊӵļüÖÁÉÙÓÐÒ»¸öÒѾ­±»ÐÞ¸ÄÁË£¬ÊÂÎñµÄ°²È«ÐÔÒѾ­±»ÆÆ»µ¡£·þÎñÆ÷»á·ÅÆúÖ´ÐÐÕâ¸öÊÂÎñ£¬Ö±½ÓÏò¿Í»§¶Ë·µ»Ø¿Õ»Ø¸´£¬±íʾÊÂÎñÖ´ÐÐʧ°Ü¡£

Èç¹û REDIS_DIRTY_CAS Ñ¡ÏîûÓб»´ò¿ª£¬ÄÇô˵Ã÷ËùÓмàÊÓ¼ü¶¼°²È«£¬·þÎñÆ÷ÕýʽִÐÐÊÂÎñ¡£

α´úÂëÈçÏÂ

def check_safety_before_execute_trasaction():

if client.state & REDIS_DIRTY_CAS:
# °²È«ÐÔÒÑÆÆ»µ£¬Çå³ýÊÂÎñ״̬
clear_transaction_state(client)
# Çå¿ÕÊÂÎñ¶ÓÁÐ
clear_transaction_queue(client)
# ·µ»Ø¿Õ»Ø¸´¸ø¿Í»§¶Ë
send_empty_reply(client)
else:
# °²È«ÐÔÍêºÃ£¬Ö´ÐÐÊÂÎñ
execute_transaction()

×îºó£¬µ±Ò»¸ö¿Í»§¶Ë½áÊøËüµÄÊÂÎñʱ£¬ÎÞÂÛÊÂÎñÊdzɹ¦Ö´ÐУ¬»¹ÊÇʧ°Ü£¬ watched_keys ×ÖµäÖкÍÕâ¸ö¿Í»§¶ËÏà¹ØµÄ×ÊÁ϶¼»á±»Çå³ý¡£

RedisÊÂÎñµÄACIDÐÔÖÊ

RedisÊÂÎñ¾ßÓÐÔ­×ÓÐÔ¡¢Ò»ÖÂÐÔ¡¢¸ôÀëÐÔ£¬²¢ÇÒµ±RedisÔËÐÐÔÚijÖÖÌØ¶¨µÄ³Ö¾Ã»¯Ä£Ê½Ï£¬Ò²¾ßÓг־ÃÐÔ¡£

Ô­×ÓÐÔ

RedisÊÂÎñ£¬ÊÂÎñ¶ÓÁÐÖеÄÃüÁîҪôȫ²¿Ö´ÐУ¬ÒªÃ´Ò»¸ö¶¼²»Ö´ÐС£ËùÒÔRedisÊÂÎñ¾ßÓÐÔ­×ÓÐÔ¡£

RedisÊÂÎñÓ봫ͳµÄ¹ØÏµÐÍÊý¾Ý¿âÊÂÎñ×î´óµÄÇø±ðÔÚÓÚ£ºRedisÊÂÎñ²»Ö§³Ö»Ø¹ö»úÖÆ£¨rollback£©,¼´Ê¹ÊÂÎñ¶ÓÁÐÖеÄÃüÁîÖ´ÐÐÆÚ¼ä³öÏÖÁË´íÎó£¬Õû¸öÊÂÎñ»á¼ÌÐøÏÂÈ¥£¬Ö±µ½ÊÂÎñ¶ÓÁÐÀïÃæµÄÃüÁî¶¼Ö´ÐÐÍê¡£

ÈçÏÂÀý×Ó£º

Ò»ÖÂÐÔ

Redisͨ¹ý´íÎó¼ì²âºÍ¼òµ¥µÄÉè¼Æ±£Ö¤ÊÂÎñÒ»ÖÂÐÔ¡£

Èë¶Ó´íÎó

Èç¹ûÒ»¸öÊÂÎñÔÚÈë¶Ó¹ý³ÌÖУ¬³öÏÖÁËÃüÁî²»´æÔÚ£¬»òÕßÃüÁî¸ñʽ²»ÕýÈ·£¬Redis¾Ü¾øÖ´ÐÐÕâ¸öÊÂÎñ¡£

ÈçÏÂÀý×Ó

ÒòΪ¾ÜµôÈë¶Ó´íÎóµÄÊÂÎñ£¬ËùÒÔÒ»ÖÂÐÔ²»»á±»Èë¶Ó´íÎóµÄÊÂÎñÓ°Ïì¡£

Ö´ÐдíÎó

ÊÂÎñÖ´Ðйý³ÌÖУ¬´íÎóµÄÃüÁî»á±»Ê¶±ð³öÀ´£¬²¢½øÐÐÏàÓ¦µÄ´íÎó´¦Àí£¬ËùÒÔÒ»ÖÂÐÔ²»»áÊܵ½Ó°Ïì¡£

·þÎñÆ÷Í£»ú

Èç¹û·þÎñÆ÷ÔËÐÐÔÚûÓг־û¯µÄÄÚ´æÄ£Ê½Ï£¬ÄÇÃ´ÖØÆôºóÊý¾Ý¿âÊǿհ׵ģ¬Òò´ËÊý¾ÝÊÇÒ»Öµġ£

Èç¹û·þÎñÆ÷ÔËÐÐÔÚRDB»òÕßAOFģʽÏ£¬ÖÐ;ͣ»ú¿ÉÒÔÓÃÁ½ÖÖģʽ»Ö¸´£¬Èç¹ûÕÒ²»µ½»Ö¸´Îļþ£¬Êý¾Ý¿âÊǿհ׵ģ¬Êý¾ÝÊÇÒ»Öµġ£

¸ôÀëÐÔ

Redis²ÉÓõĵ¥Ï̵߳ķ½Ê½ÊµÐÐÊÂÎñ£¬²¢ÇÒÔÚÊÂÎñÖ´Ðйý³ÌÖв»»á¶ÔÊÂÎñÖжϣ¬Òò´ËRedisÊÂÎñÒÔ´®Ðеķ½Ê½ÔËÐеģ¬ËùÒÔRedisÊÂÎñ¾ßÓиôÀëÐÔ¡£

³Ö¾ÃÐÔ

RedisÊÂÎñ£¬ÓöÓÁб£´æÁËһЩÁÐÃüÁûÓÐΪÊÂÎñÌṩ¶îÍâµÄ³Ö¾Ã»¯¹¦ÄÜ£¬ËùÓÐRedisµÄ³Ö¾Ã»¯ÓÉRedisµÄ³Ö¾Ã»¯Ä£Ê½¾ö¶¨¡£

ûÓг־û¯

RedisûÓпªÆô³Ö¾Ã»¯Ä£Ê½£¬ÊÂÎñ²»¾ßÓг־ÃÐÔ£¬Ò»µ©·þÎñÆ÷Í£»ú£¬°üÀ¨ÊÂÎñÔÚÄÚµÄÊý¾Ý¶¼½«¶ªÊ§

RDB

µ±·þÎñÆ÷ÔËÐÐÔÚRDBģʽÏ£¬·þÎñÆ÷Ö»ÔÚÌØ¶¨µÄÌõ¼þÂú×ãʱ£¬²Å»áÖ´ÐÐBGSAVEÃüÁî±£´æÊý¾Ý¿âÊý¾Ý¡£È»¶øÒì²½Ö´ÐеÄBGSAVEÃüÁî²»Äܱ£Ö¤ÊÂÎñÊý¾ÝµÚһʱ¼ä±£´æµ½´ÅÅÌ¡£

Òò´ËRDBģʽϵÄÊÂÎñ²»¾ß±¸³Ö¾ÃÐÔ¡£

AOF

µ±·þÎñÆ÷ÔËÐÐÔÚAOFģʽÏ£¬²¢ÇÒappendfsync Ñ¡ÏîµÄֵΪ always ʱ£¬³ÌÐò×Ü»áÔÚÖ´ÐÐÃüÁîºóµ÷Óõ÷Óà sync º¯Êý£¬½«Êý¾Ýͬ²½µ½´ÅÅÌÖУ¬Òò´ËÔڴ˳¡¾°ÖÐAOFÊǾßÓг־ÃÐԵġ£

ÆäËûÇé¿öÏ£¬²»Äܱ£Ö¤Ã¿Ö´ÐÐÒ»¸öÃüÁî¾ÍÄܽ«Êý¾Ýͬ²½µ½´ÅÅÌ£¬ËùÒÔÊÂÎñ²»¾ß±¸³Ö¾ÃÐÔ¡£

 

   
2209 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]
 
×îÐÂÎÄÕÂ
InfluxDB¸ÅÄîºÍ»ù±¾²Ù×÷
InfluxDB TSM´æ´¢ÒýÇæÖ®Êý¾ÝдÈë
Éî¶ÈÂþ̸Êý¾Ýϵͳ¼Ü¹¹¡ª¡ªLambda architecture
Lambda¼Ü¹¹Êµ¼ù
InfluxDB TSM´æ´¢ÒýÇæÖ®Êý¾Ý¶ÁÈ¡
×îпγÌ
OracleÊý¾Ý¿âÐÔÄÜÓÅ»¯¡¢¼Ü¹¹Éè¼ÆºÍÔËÐÐά»¤
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
NoSQLÊý¾Ý¿â£¨Ô­Àí¡¢Ó¦Óá¢×î¼Ñʵ¼ù£©
ÆóÒµ¼¶Hadoop´óÊý¾Ý´¦Àí×î¼Ñʵ¼ù
OracleÊý¾Ý¿âÐÔÄÜÓÅ»¯×î¼Ñʵ¼ù
³É¹¦°¸Àý
ij½ðÈÚ¹«Ë¾ Mysql¼¯ÈºÓëÐÔÄÜÓÅ»¯
±±¾© ²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
ÖªÃûijÐÅϢͨÐŹ«Ë¾ NoSQL»º´æÊý¾Ý¿â¼¼Êõ
±±¾© oracleÊý¾Ý¿âSQLÓÅ»¯
ÖйúÒÆ¶¯ IaaSÔÆÆ½Ì¨-Ö÷Á÷Êý¾Ý¿â¼°´æ´¢¼¼Êõ