±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÁËÒ»¸öÊÂÎñ´Ó¿ªÊ¼µ½½áÊøµÄÈý¸ö½×¶Î£¬ÒÔ¼°WATCHÃüÁîµÄʵÏÖ£¬ÊÂÎñµÄACIDÐÔÖÊ£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×Ô¼òÊ飬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼¡¢ÍƼö¡£ |
|
Redisͨ¹ýMULTI¡¢EXEC¡¢WATCHµÈÃüÁîÀ´ÊµÏÖÊÂÎñ£¨transaction£©¹¦ÄÜ¡£ÊÂÎñÌṩÁËÒ»ÖÖ½«¶à¸öÃüÁîÇëÇó´ò°ü£¬È»ºóÒ»´ÎÐÔ¡¢°´Ë³ÐòµØÖ´Ðжà¸öÃüÁîµÄ»úÖÆ£¬²¢ÇÒÔÚÊÂÎñÖ´ÐÐÆÚ¼ä£¬·þÎñÆ÷²»»áÖжÏÊÂÎñ¶øÈ¥Ö´ÐÐÆäËû¿Í»§¶ËÃüÁî¡£
1 ÊÂÎñµÄʵÏÖ
Ò»¸öÊÂÎñ´Ó¿ªÊ¼µ½½áÊøÍ¨³£¾ÀúÈý¸ö½×¶Î£º
(1) ÊÂÎñ¿ªÊ¼
(2) ÃüÁîÈë¶Ó
(3) ÊÂÎñÖ´ÐÐ
1.1 ÊÂÎñ¿ªÊ¼
MULTIÃüÁîµÄÖ´ÐбêÖ¾×ÅÊÂÎñµÄ¿ªÊ¼£º
MULTIÃüÁî¿ÉÒÔ½«Ö´ÐиÃÃüÁîµÄ¿Í»§¶Ë´Ó·ÇÊÂÎñ״̬Çл»ÖÁÊÂÎñ״̬¡£
1.2 ÃüÁîÈë¶Ó
µ±Ò»¸ö¿Í»§¶Ë´¦ÓÚ·ÇÊÂÎñ״̬ʱ£¬Õâ¸ö¿Í»§¶ËµÄÃüÁî»áÁ¢¼´±»·þÎñÆ÷Ö´ÐС£Óë´Ë²»Í¬µÄÊÇ£¬µ±Ò»¸ö¿Í»§¶ËÇл»µ½ÊÂÎñ״̬֮ºó£¬·þÎñÆ÷»á¸ù¾ÝÕâ¸ö¿Í»§¶Ë·¢À´µÄ²»Í¬µÄÃüÁîÖ´Ðв»Í¬µÄ²Ù×÷£º
(1) Èç¹û¿Í»§¶Ë·¢Ë͵ÄÃüÁîΪEXEC¡¢DISCARD¡¢WATCH¡¢MULTIËĸöÃüÁîÖÐµÄÆäÖÐÒ»¸ö£¬ÄÇô·þÎñÆ÷»áÁ¢¼´Ö´ÐÐÕâ¸öÃüÁî¡£
(2) Èç¹û¿Í»§¶Ë·¢Ë͵ÄÃüÁîÊÇEXEC¡¢DISCARD¡¢WATCH¡¢MULTIËĸöÃüÁîÒÔΪµÄÆäËûÃüÁÄÇô·þÎñÆ÷²»»áÁ¢¼´Ö´ÐÐÕâ¸öÃüÁ¶øÊǽ«Õâ¸öÃüÁî·ÅÔÚÒ»¸öÊÂÎñ¶ÓÁÐÖУ¬È»ºóÏò¿Í»§¶Ë·µ»ØQUEUED»Ø¸´¡£

·þÎñÆ÷ÅжÏÃüÁîÊǸÃÈë¶Ó»¹ÊǸÃÖ´ÐеĹý³Ì
1.3 ÊÂÎñ¶ÓÁÐ
ÊÂÎñ¶ÓÁÐÊÇÒ»¸öÒÔÏȽøÏȳö£¨FIFO£©µÄ·½Ê½±£´æÈë¶ÓµÄÃüÁ½ÏÏÈÈë¶ÓµÄÃüÁî»á±»·Åµ½Êý×éµÄÇ°Ãæ£¬¶ø½ÏºóÈë¶ÓµÄÃüÁîÔò»á±»·Åµ½Êý×éµÄºóÃæ¡£ÀýÈ磺
127.0.0.1:6379>>
MULTI
OK
127.0.0.1:6379>> set name Redis;
QUEUED 127.0.0.1:6379>> get name;
QUEUED 127.0.0.1:6379>> set author "Peter
Seibei";
QUEUED 127.0.0.1:6379>> get author;
QUEUED |
ÄÇô·þÎñÆ÷Æ÷½«»áΪ¿Í»§¶Ë´´½¨Ò»¸öÊÂÎñ¶ÓÁУ¬½«ÉÏÃæ4ÌõÃüÁîÈë¶Ó£¬×îÏÈÈë¶ÓµÄSETÃüÁî·ÅÔÚÊÂÎñ¶ÓÁеÄ×îÇ°Ãæ¡¡£º

ÊÂÎñ¶ÓÁÐ
1.4 Ö´ÐÐÊÂÎñ
µ±Ò»¸ö´¦ÓÚÊÂÎñ״̬µÄ¿Í»§¶ËÏò·þÎñÆ÷·¢ËÍEXECÃüÁîʱ£¬Õâ¸öEXECÃüÁÁ¢¼´±»·þÎñÆ÷Ö´ÐС£·þÎñÆ÷»á±éÀúÕâ¸ö¿Í»§¶ËµÄÊÂÎñ¶ÓÁУ¬Ö´ÐжÓÁÐÖб£´æµÄËùÓеÄÃüÁ×îºó½«Ö´ÐÐÃüÁîËùµÃµÄ½á¹û·µ»Ø¸ø¿Í»§¶Ë¡£¶ÔÓÚÉÏÀý×Ó£º
127.0.0.1:6379>
EXEC
1) OK
2) "Redis"
3) OK
4) "Peter Seibei" |
2 WATCHÃüÁîµÄʵÏÖ
WATCHÃüÁîÊÇÒ»¸öÀÖ¹ÛËù£¨optimistic locking£©£¬Ëü¿ÉÒÔÔÚEXECÃüÁîÖ´ÐÐǰ£¬¼àÊÓÈÎÒâÊýÁ¿µÄÊý¾Ý¿â¼ü£¬²¢ÔÚEXECÃüÁîÖ´ÐÐʱ£¬¼ì²é¼àÊӵļüÊÇ·ñÖÁÉÙÓÐÒ»¸öÒѾ±»Ð޸ĹýÁË£¬Èç¹ûÐ޸ĹýÁË£¬·þÎñÆ÷½«¾Ü¾øÖ´ÐÐÊÂÎñ£¬²¢Ïò¿Í»§¶Ë·µ»Ø´ú±íÊÂÎñÖ´ÐÐʧ°ÜµÄ¿Õ»Ø¸´¡£ÀýÈ磬ÏÂÃæµÄÊÂÎñ½«»áÖ´ÐÐʧ°Ü£º
127.0.0.1:6379>>
WATCH name
OK
127.0.0.1:6379>> MULTI
OK 127.0.0.1:6379>> set "name"
"Peter"
QUEUED 127.0.0.1:6379>> EXEC
(nil) |

ÔÚʱ¼äT4£¬¿Í»§¶ËBÐÞ¸ÄÁË"name"¼üµÄÖµ£¬µ±¿Í»§¶ËAÔÚT5Ö´ÐÐEXECÃüÁîʱ£¬·þÎñÆ÷»á·¢ÏÖWATCH¼àÊӵļü¡°name¡±ÒѾ±»Ð޸ģ¬Òò´Ë·þÎñÆ÷¾Ü¾øÖ´Ðпͻ§¶ËAµÄÊÂÎñ£¬²¢Ïò¿Í»§¶ËA·µ»Ø¿Õ»Ø¸´¡£
2.1ʹÓÃWATCHÃüÁî¼àÊÓÊý¾Ý¿â¼ü
ÿ¸öRedisÊý¾Ý¿â±£´æ×ÅÒ»¸öwatched_keys×ֵ䣬Õâ¸ö×ÖµäµÄ¼üÊÇij¸ö±»WATCHÃüÁî¼àÊÓµÄÊý¾Ý¿â¼ü£¬¶ø×ÖµäµÄÖµÊÇÒ»¸öÁ´±í£¬Á´±í¼Ç¼ÁËËùÓмàÊÓÏàÓ¦Êý¾Ý¿â¼üµÄ¿Í»§¶Ë¡£

Ò»¸öwatched_keys×Öµä
ÉÏͼ±íÃ÷£º
(1) ¿Í»§¶Ëc1ºÍc2ÕýÔÚ¼àÊÓ¼ü¡°name¡±¡£
(2) ¿Í»§¶Ëc3ÕýÔÚ¼àÊÓ¼ü¡°age¡±¡£
(3) ¿Í»§¶Ëc2ºÍc4ÕýÔÚ¼àÊÓ¼ü¡°address¡±¡£
2.2 ¼àÊÓ»úÖÆµÄ´¥·¢
ËùÓжÔÊý¾Ý¿â½øÐÐÐÞ¸ÄÃüÁÈçSET¡¢LPUSH¡¢SADD¡¢ZREM¡¢DELµÈ£¬ÔÚÖ´Ðк󶼻á¶Ôwatched_keys×ֵ佸Ðмì²é£¬²é¿´±»Ð޸ĵÄÊý¾Ý¿â¼üÊÇ·ñÊDZ»¿Í»§¶ËËù¼àÊӵļü£¬Èç¹ûÓеϰ£¬¿Í»§¶ËREDIS_DIRTY_CAS±êʶ½«»á±»´ò¿ª£¬±íʾ¸Ã¿Í»§¶ËµÄÊÂÎñ°²È«ÐÔÒѾ±»ÆÆ»µ¡£
2.3 ÅжÏÊÂÎñÊÇ·ñ°²È«
µ±·þÎñÆ÷½ÓÊÕµ½Ò»¸ö¿Í»§¶Ë·¢À´µÄEXECÃüÁ·þÎñÆ÷»á¸ù¾ÝÕâ¸ö¿Í»§¶ËÊÇ·ñ´ò¿ªÁËREDIS_DIRTY_CAS±êʶÀ´¾ö¶¨ÊÇ·ñÖ´ÐÐÊÂÎñ£º
(1) Èç¹û¿Í»§¶ËµÄREDIS_DIRTY_ CAS±êʶÒѾ±»´ò¿ª£¬ÄÇô˵Ã÷¿Í»§¶ËËù¼àÊӵļüµ±ÖУ¬ÖÁÉÙÓÐÒ»¸ö¼üÒѾ±»Ð޸ĹýÁË£¬ÔÚÕâÖÖÇé¿öÏ£¬¿Í»§¶ËÌá½»µÄÊÂÎñÒѾ²»ÔÙ°²È«£¬ËùÒÔ·þÎñÆ÷¾Ü¾øÖ´Ðпͻ§¶ËÌá½»µÄÊÂÎñ¡£
(2) Èç¹û¿Í»§¶ËµÄREDIS_DIRTY_CAS±êʶûÓб»´ò¿ª£¬ÄÇô˵Ã÷¿Í»§¶Ë¼àÊÓµÄËùÓмü¶¼Ã»Óб»Ð޸Ĺý£¨»òÕ߿ͻ§¶ËûÓмàÊÓÈκμü£©£¬ÊÂÎñÈÔÈ»Êǰ²È«µÄ£¬·þÎñÆ÷½«Ö´Ðпͻ§¶ËÌá½»µÄÕâ¸öÊÂÎñ¡£
3 ÊÂÎñµÄACIDÐÔÖÊ
ÔÚRedisÖУ¬ÊÂÎñ×ÜÊǾßÓÐÔ×ÓÐÔ£¨Atomicity£©¡¢Ò»ÖÂÐÔ£¨Consistency£©ºÍ¸ôÀëÐÔ£¨Isolation£©£¬²¢ÇÒµ±RedisÔËÐÐÔÚijÖÖÌØ¶¨µÄ³Ö¾Ã»¯Ä£Ê½Ï£¬ÊÂÎñÒ²¾ßÓÐÄ;ÃÐÔ£¨Durability£©¡£
3.1 Ô×ÓÐÔ
ÊÂÎñ¾ßÓÐÔ×ÓÐÔÖ¸µÄÊÇ£¬ Êý¾Ý¿â½«ÊÂÎñÖеĶà¸ö²Ù×÷µ±×÷Ò»¸öÕûÌåÀ´Ö´ÐУ¬·þÎñÆ÷Ҫô¾ÍÖ´ÐÐÊÂÎñÖеÄËùÓвÙ×÷£¬
Ҫô¾ÍÒ»¸ö²Ù×÷Ò²²»Ö´ÐС£
¶ÔÓÚRedisµÄÊÂÎñ¹¦ÄÜÀ´Ëµ£¬ÊÂÎñ¶ÓÁÐÖеÄÃüÁîҪô¾ÍÈ«²¿¶¼Ö´ÐУ¬ÒªÃ´¾ÍÒ»¸ö¶¼²»Ö´ÐУ¬Òò´Ë£¬ RedisµÄÊÂÎñÊǾßÓÐÔ×ÓÐԵġ£
ÏÂÃæÊÇÒ»¸öÖ´ÐÐʧ°ÜµÄÊÂÎñ£¬Õâ¸öÊÂÎñÒòΪÃüÁîÈë¶Ó³ö´í¶ø±»·þÎñÆ÷¾Ü¾øÖ´ÐУº
127.0.0.1:6379>
multi
OK
127.0.0.1:6379> set msg hello
QUEUED 127.0.0.1:6379> get
(error) ERR wrong number of arguments for 'get'
command 127.0.0.1:6379> get msg
QUEUED 127.0.0.1:6379> exec
(error) EXECABORT Transaction discarded because
of previous errors.
|
RedisµÄÊÂÎñºÍ´«Í³µÄ¹ØÏµÐÍÊý¾Ý¿âÊÂÎñµÄ×î´óÇø±ðÔÚÓÚ£¬Redis²»Ö§³ÖÊÂÎñ»Ø¹ö»úÖÆ(rollback)£¬
¼´Ê¹ÊÂÎñ¶ÓÁÐÖеÄij¸öÃüÁîÔÚÖ´ÐÐÆÚ¼ä³öÏÖÁË´íÎó£¬Õû¸öÊÂÎñÒ²»á¼ÌÐøÖ´ÐÐÏÂÈ¥£¬Ö±µ½½«ÊÂÎñ¶ÓÁÐÖеÄËùÓÐÃüÁî¶¼Ö´ÐÐÍê±ÏΪֹ¡£
ÏÂÃæÕ¹Ê¾Á˼´Ê¹RPUSHÃüÁîÔÚÖ´ÐÐÆÚ¼ä³öÏÖÁË´íÎó£¬ÊÂÎñµÄºóÐøÃüÁîÒ²»á¼ÌÐøÖ´ÐÐÏÂÈ¥£¬ ²¢ÇÒ֮ǰִÐеÄÃüÁîÒ²²»»áÓÐÈκÎÓ°Ï죺
127.0.0.1:6379>
set msg hello
OK
127.0.0.1:6379> multi
OK 127.0.0.1:6379> sadd fruit apple banana
cherry
QUEUED 127.0.0.1:6379> rpush msg bye redis
QUEUED 127.0.0.1:6379> sadd alphabet a b c
QUEUED 127.0.0.1:6379> exec
1) (integer) 3
2) (error) WRONGTYPE Operation against a key
holding the wrong kind of value
3) (integer) 3 |
RedisΪʲô²»Ö§³Ö»Ø¹ö£º²»Ö§³ÖÊÂÎñ»Ø¹öÊÇÒòΪÕâÖÖ¸´ÔӵŦÄܺÍRedis×·Çó¼òµ¥¸ßЧµÄÉè¼ÆÖ÷Ö¼²»Ïà·û£¬²¢ÇÒRedisÊÂÎñµÄÖ´ÐÐʱ´íÎóͨ³£¶¼ÊDZà³Ì´íÎó²úÉúµÄ£¬
ÕâÖÖ´íÎóͨ³£Ö»»á³öÏÖÔÚ¿ª·¢»·¾³ÖУ¬ ¶øºÜÉÙ»áÔÚʵ¼ÊµÄÉú²ú»·¾³ÖгöÏÖ¡£
3.2 Ò»ÖÂÐÔ
ÊÂÎñµÄÒ»ÖÂÐÔÊÇÖ¸£¬Èç¹ûÊý¾Ý¿âÖ´ÐÐǰÊÇÒ»Öµģ¬ÄÇôÔÚÊÂÎñÖ´Ðкó£¬ÎÞÂÛÊÂÎñÊÇ·ñÖ´Ðгɹ¦£¬Êý¾Ý¿âÒ²Ó¦¸ÃÊÇÒ»Öµġ£
3.2.1Èë¶Ó´íÎó
Èç¹ûÒ»¸öÊÂÎñÔÚÈë¶ÓÃüÁîµÄ¹ý³ÌÖУ¬³öÏÖÁËÃüÁî²»´æÔÚ£¬»òÕßÃüÁîµÄ¸ñʽ²»ÕýÈ·µÈÇé¿ö£¬ ÄÇôRedis½«¾Ü¾øÖ´ÐÐÕâ¸öÊÂÎñ¡£ÒòΪ·þÎñÆ÷»á¾Ü¾øÖ´ÐÐÈ˶ӹý³ÌÖгöÏÖ´íÎóµÄÊÂÎñ£¬
ËùÒÔRedisÊÂÎñµÄÒ»ÖÂÐÔ²»»á±»´øÓÐÈë¶Ó´íÎóµÄÊÂÎñÓ°Ïì¡£
127.0.0.1:6379>
multi
OK
127.0.0.1:6379> set msg hello
QUEUED 127.0.0.1:6379> YAHOOO
(error) ERR unknown command 'YAHOOO' 127.0.0.1:6379> get msg
QUEUED 127.0.0.1:6379> exec
(error) EXECABORT Transaction discarded because
of previous errors |
Redis 2.6.5ÒÔǰµÄÈë¶Ó´íÎó´¦Àí£ºRedis»áºöÂÔ´íÎóµÄÃüÁ¶øÕýÈ·µÄÃüÁîÈçÉÏÃæµÄSETºÍGETÈÔÈ»»á±»Ö´ÐС£
3.2.2 Ö´ÐдíÎó
Ö´ÐдíÎóͨ³£¶¼ÊÇһЩ²»ÄÜÔÚÈë¶Óʱ±»·þÎñÆ÷·¢ÏֵĴíÎó£¬ ÕâЩ´íÎóÖ»»áÔÚÃüÁîʵ¼ÊÖ´ÐÐʱ±»´¥·¢¡£¼´Ê¹ÔÚÊÂÎñµÄÖ´Ðйý³ÌÖз¢ÉúÁË´íÎó£¬
·þÎñÆ÷Ò²²»»áÖжÏÊÂÎñµÄÖ´ÐУ¬ Ëü»á¼ÌÐøÖ´ÐÐÊÂÎñÖÐÓàÏÂµÄÆäËûÃüÁ ²¢ÇÒÒÑÖ´ÐеÄÃüÁ°üÀ¨Ö´ÐÐÃüÁîËù²úÉúµÄ½á¹û£©²»»á±»³ö´íµÄÃüÁîÓ°Ïì¡£
ÒòΪÔÚÊÂÎñÖ´ÐеĹý³ÌÖУ¬ ³ö´íµÄÃüÁî»á±»·þÎñÆ÷ʶ±ð³öÀ´£¬ ²¢½øÐÐÏàÓ¦µÄ´íÎó´¦Àí£¬ ËùÒÔÕâЩ³ö´íÃüÁî²»»á¶ÔÊý¾Ý¿â×öÈκÎÐ޸ģ¬
Ò²²»»á¶ÔÊÂÎñµÄÒ»ÖÂÐÔ²úÉúÈκÎÓ°Ïì¡£
127.0.0.1:6379>
set msg hello
OK
127.0.0.1:6379> multi
OK
127.0.0.1:6379> sadd fruit apple banana
cherry
QUEUED 127.0.0.1:6379> rpush msg bye redis
QUEUED 127.0.0.1:6379> sadd alphabet a b c
QUEUED 127.0.0.1:6379> exec
1) (integer) 3
2) (error) WRONGTYPE Operation against a key
holding the wrong kind of value
3) (integer) 3 |
3.2.3 ·þÎñÆ÷Í£»ú
(1) Èç¹û·þÎñÆ÷ÔËÐÐÔÚÎ޳־û¯µÄÄÚ´æÄ£Ê½Ï£¬ÄÇÃ´ÖØÆôÖ®ºóµÄÊý¾Ý¿â½«Êǿհ׵ģ¬ Òò´ËÊý¾Ý×ÜÊÇÒ»Öµġ£
(2) Èç¹û·þÎñÆ÷ÔËÐÐÔÚRDBģʽ»òAOFģʽÏ£¬ ÄÇôÔÚÊÂÎñÖÐ;ͣ»ú²»»áµ¼Ö²»Ò»Ö£¬ÒòΪ·þÎñÆ÷¿ÉÒÔ¸ù¾ÝRDBÎļþ»òAOFÎļþÀ´»Ø¸´Êý¾Ý£¬´Ó¶ø½«Êý¾Ý¿â»¹Ôµ½Ò»¸öÒ»ÖµÄ״̬¡£
3.3 ¸ôÀëÐÔ
ÊÂÎñµÄ¸ôÀëÐÔÖ¸µÄÊÇ£¬¼´Ê¹Êý¾Ý¿âÖÐÓжà¸öÊÂÎñ²¢·¢µØÖ´ÐУ¬¸÷¸öÊÂÎñÖ®¼äÒ²²»»á»¥Ïà Ó°Ï죬²¢ÇÒÔÚ²¢·¢×´Ì¬ÏÂÖ´ÐеÄÊÂÎñºÍ´®ÐÐÖ´ÐеÄÊÂÎñ²úÉúµÄ½á¹ûÍêÈ«Ïàͬ¡£
ÒòΪRedisʹÓõ¥Ï̵߳ķ½Ê½À´Ö´ÐÐÊÂÎñ£¨ÒÔ¼°ÊÂÎñ¶ÓÁÐÖеÄÃüÁ£¬²¢ÇÒ·þÎñÆ÷±£Ö¤£¬ ÔÚÖ´ÐÐÊÂÎñÆÚ¼ä²»»á¶ÔÊÂÎñ½øÐÐÖжϣ¬Òò´Ë£¬RedisµÄÊÂÎñ×ÜÊÇÒÔ´®Ðеķ½Ê½ÔËÐе쬲¢ÇÒ
ÊÂÎñÒ²×ÜÊǾßÓиôÀëÐԵġ£
3.4 Ä;ÃÐÔ
ÊÂÎñµÄÄ;ÃÐÔÖ¸µÄÊÇ£¬µ±Ò»¸öÊÂÎñÖ´ÐÐÍê±Ïʱ£¬Ö´ÐÐÕâ¸öÊÂÎñËùµÃµÄ½á¹ûËȾ±»±£´æµ½ ÓÀ¾ÃÐÔ´æ´¢½éÖÊ£¨±ÈÈçÓ²ÅÌ£©ÀïÃæÁË£¬
¼´Ê¹·þÎñÆ÷ÔÚÊÂÎñÖ´ÐÐÍê±Ï Ö®ºóÍ£»ú£¬ Ö´ÐÐÊÂÎñËùµÃµÄ½á¹ûÒ²²»»á¶ªÊ§¡£RedisÊÂÎñµÄÄ;ÃÐÔÓÉ·þÎñÆ÷ËùʹÓó־û¯Ä£Ê½¾ö¶¨µÄ£º
(1) µ±·þÎñÆ÷ÔÚÎ޳־û¯µÄÄÚ´æÄ£Ê½ÏÂÔË×÷ʱ£¬ÊÂÎñ²»¾ßÓÐÄ;ÃÐÔ¡£ÒòΪһµ©·þÎñÆ÷Í£»ú£¬
·þÎñÆ÷ËùÓеÄÊý¾Ý¶¼½«¶ªÊ§¡£
(2) µ±·þÎñÆ÷ÔÚROB³Ö¾Ã»¯Ä£Ê½ÏÂÔË×÷ʱ£¬ÊÂÎñͬÑù²»¾ßÓÐÄ;ÃÐÔ¡£ÒòΪ·þÎñÆ÷Ö»»áÔÚÌØ¶¨µÄ±£´æÌõ¼þϲŻáÖ´ÐÐBGSAVEÃüÁ²¢ÇÒÒì²½Ö´ÐеÄBGSAVEÃüÁî²»Äܱ£Ö¤ÊÂÎñµÄÊý¾ÝµÚһʱ¼ä±»±£´æµ½Ó²ÅÌÉÏ¡£
(3) µ±·þÎñÆ÷ÔËÐÐÔÚAOF³Ö¾Ã»¯Ä£Ê½Ï£¬²¢ÇÒappendfsyncÑ¡ÏîµÄֵΪalwaysʱ£¬³ÌÐò×Ü»áÔÚÖ´ÐÐÃüÁîÖ®ºóµ÷ÓÃͬ²½(sync)º¯Êý£¬½«ÃüÁîÊý¾ÝÕæÕýµØ±£´æµ½Ó²ÅÌÀï¡£
4 С½á
(1) ÊÂÎñÌṩÁËÒ»ÖÖ½«¶à¸öÃüÁî´ò°ü£¬È»ºóÒ»´ÎÐÔ¡¢ÓÐÐòµØÖ´ÐеĻúÖÆ¡£
(2) ¶à¸öÃüÁî»á±»È˶ӵ½ÊÂÎñ¶ÓÁÐÖУ¬ È»ºó°´ÏȽøÏȳö(FIFO)µÄ˳ÐòÖ´ÐС£
(3) ÊÂÎñÔÚÖ´Ðйý³ÌÖв»»á±»Öжϣ¬µ±ÊÂÎñ¶ÓÁÐÖеÄËùÓÐÃüÁî¶¼±»Ö´ÐÐÍê±ÏÖ®ºó£¬ÊÂÎñ²Å»á½áÊø¡£
(4) ´øÓÐWATCHÃüÁîµÄÊÂÎñ»á½«¿Í»§¶ËºÍ±»¼àÊӵļüÔÚÊý¾Ý¿âµÄwatched_keys×ֵ乨Áª£¬µ±¼ü±»ÐÞ¸Äʱ£¬³ÌÐò»á½«ËùÓмàÊÓ±»Ð޸ļüµÄ¿Í»§¶ËµÄREDIS_DIRTY_CAS±êʶ´ò¿ª£¬·þÎñÖ»ÓÐÔÚREDIS_DIRTY_CAS±êʶûÓдò¿ªÊ±£¬²Å»áÖ´Ðпͻ§¶ËÌá½»µÄÊÂÎñ£¬·ñÔò·þÎñÆ÷¾Ü¾øÖ´ÐÐÊÂÎñ¡£
(5) RedisÊÂÎñ²»Ö§³Ö»Ø¹ö»úÖÆ¡£
(6) RedisµÄÊÂÎñ×ÜÊǾßÓÐACIDÖеÄÔ×ÓÐÔ¡¢Ò»ÖÂÐԺ͸ôÀëÐÔ£¬µ±·þÎñÆ÷ÔËÐÐÔÚAOF³Ö¾Ã»¯Ä£Ê½Ï£¬²¢ÇÒappendfsyncÑ¡ÏîµÄֵΪalwaysʱ£¬ÊÂÎñÒ²¾ßÓÐÄ;ÃÐÔ¡£
|