±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜRedis
Êý¾ÝÀàÐÍ£¬Í¨¹ýʵÀýÑÝʾÁË·¢²¼¶©ÔÄÊÇÈçºÎ¹¤×÷µÄ,²¢¶ÔRedis ÊÂÎñÃüÁ³Ö¾Ã»¯¡¢ÉÚ±ø¡¢·ÖƬ½øÐÐÁ˲ûÊö£¬Ï£Íû¶ÔÄúÓÐËù°ïÖú¡£
±¾ÎÄÀ´×Ô½ñÈÕÍ·Ìõ£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼¡¢ÍƼö¡£ |
|
Redis ¼ò½é
Redis ÊÇÍêÈ«¿ªÔ´Ãâ·ÑµÄ£¬×ñÊØ BSD ÐÒ飬ÊÇÒ»¸ö¸ßÐÔÄÜµÄ key - value Êý¾Ý¿â
Redis Óë ÆäËû key - value »º´æ²úÆ·ÓÐÒÔÏÂÈý¸öÌØµã£º
Redis Ö§³ÖÊý¾Ý³Ö¾Ã»¯£¬¿ÉÒÔ½«ÄÚ´æÖеÄÊý¾Ý±£´æÔÚ´ÅÅÌÖУ¬ÖØÆôµÄʱºò¿ÉÒÔÔٴμÓÔØ½øÐÐʹÓá£
Redis ²»½ö½öÖ§³Ö¼òµ¥µÄ key - value ÀàÐ͵ÄÊý¾Ý£¬Í¬Ê±»¹Ìṩ list£¬set£¬zset£¬hash
µÈÊý¾Ý½á¹¹µÄ´æ´¢
Redis Ö§³ÖÊý¾ÝµÄ±¸·Ý£¬¼´ master - slave ģʽµÄÊý¾Ý±¸·Ý
Redis ÓÅÊÆ
ÐÔÄܼ«¸ß ¨C Redis ¶ÁµÄËÙ¶ÈÊÇ 110000 ´Î /s, дµÄËÙ¶ÈÊÇ 81000 ´Î /s ¡£
·á¸»µÄÊý¾ÝÀàÐÍ - Redis Ö§³Ö¶þ½øÖư¸ÀýµÄ Strings, Lists, Hashes, Sets
¼° Ordered Sets Êý¾ÝÀàÐͲÙ×÷¡£
Ô×ÓÐÔ - Redis µÄËùÓвÙ×÷¶¼ÊÇÔ×ÓÐԵģ¬Òâ˼¾ÍÊÇҪô³É¹¦Ö´ÐÐҪôʧ°ÜÍêÈ«²»Ö´ÐС£µ¥¸ö²Ù×÷ÊÇÔ×ÓÐԵġ£¶à¸ö²Ù×÷Ò²Ö§³ÖÊÂÎñ£¬¼´Ô×ÓÐÔ£¬Í¨¹ý
MULTI ºÍ EXEC Ö¸Áî°üÆðÀ´¡£
ÆäËûÌØÐÔ - Redis »¹Ö§³Ö publish/subscribe ֪ͨ£¬key ¹ýÆÚµÈÌØÐÔ¡£
Redis Êý¾ÝÀàÐÍ
Redis Ö§³Ö 5 ÖÐÊý¾ÝÀàÐÍ£ºstring£¨×Ö·û´®£©£¬hash£¨¹þÏ££©£¬list£¨ÁÐ±í£©£¬set£¨¼¯ºÏ£©£¬zset£¨sorted
set£ºÓÐÐò¼¯ºÏ£©¡£
string
string ÊÇ redis ×î»ù±¾µÄÊý¾ÝÀàÐÍ¡£Ò»¸ö key ¶ÔÓ¦Ò»¸ö value¡£
string ÊǶþ½øÖư²È«µÄ¡£Ò²¾ÍÊÇ˵ redis µÄ string ¿ÉÒÔ°üº¬ÈκÎÊý¾Ý¡£±ÈÈç jpg
ͼƬ»òÕßÐòÁл¯µÄ¶ÔÏó¡£
string ÀàÐÍÊÇ redis ×î»ù±¾µÄÊý¾ÝÀàÐÍ£¬string ÀàÐ͵ÄÖµ×î´óÄÜ´æ´¢ 512 MB¡£
Àí½â£ºstring ¾ÍÏñÊÇ java ÖÐµÄ map Ò»Ñù£¬Ò»¸ö key ¶ÔÓ¦Ò»¸ö value

127.0.0.1:6379>
set hello world
OK
127.0.0.1:6379> get hello
"world" |
hash
Redis hash ÊÇÒ»¸ö¼üÖµ¶Ô£¨key - value£©¼¯ºÏ¡£
Redis hash ÊÇÒ»¸ö string ÀàÐ굀 key ºÍ value µÄÓ³Éä±í£¬hash ÌØ±ðÊʺÏÓÃÓÚ´æ´¢¶ÔÏó¡£
Àí½â£º¿ÉÒÔ½« hash ¿´³ÉÒ»¸ö key - value µÄ¼¯ºÏ¡£Ò²¿ÉÒÔ½«ÆäÏë³ÉÒ»¸ö hash ¶ÔÓ¦×Ŷà¸ö
string¡£
Óë string Çø±ð£ºstring ÊÇ Ò»¸ö key - value ¼üÖµ¶Ô£¬¶ø hash ÊǶà¸ö
key - value ¼üÖµ¶Ô¡£

// hash-key ¿ÉÒÔ¿´³ÉÊÇÒ»¸ö¼üÖµ¶Ô¼¯ºÏµÄÃû×Ö,ÔÚÕâÀï·Ö±ðΪÆäÌí¼ÓÁË
sub-key1 : value1¡¢
sub-key2 : value2¡¢sub-key3 : value3 ÕâÈý¸ö¼üÖµ¶Ô
127.0.0.1:6379> hset hash-key sub-key1 value1
(integer) 1
127.0.0.1:6379> hset hash-key sub-key2 value2
(integer) 1
127.0.0.1:6379> hset hash-key sub-key3 value3
(integer) 1
// »ñÈ¡ hash-key Õâ¸ö hash ÀïÃæµÄËùÓмüÖµ¶Ô
127.0.0.1:6379> hgetall hash-key
1) "sub-key1"
2) "value1"
3) "sub-key2"
4) "value2"
5) "sub-key3"
6) "value3"
// ɾ³ý hash-key Õâ¸ö hash ÀïÃæµÄ sub-key2 ¼üÖµ¶Ô
127.0.0.1:6379> hdel hash-key sub-key2
(integer) 1
127.0.0.1:6379> hget hash-key sub-key2
(nil)
127.0.0.1:6379> hget hash-key sub-key1
"value1"
127.0.0.1:6379> hgetall hash-key
1) "sub-key1"
2) "value1"
3) "sub-key3"
4) "value3" |
list
Redis ÁбíÊǼòµ¥µÄ×Ö·û´®ÁÐ±í£¬°´ÕÕ²åÈë˳ÐòÅÅÐò¡£ÎÒÃÇ¿ÉÒÔÍøÁбíµÄ×ó±ß»òÕßÓÒ±ßÌí¼ÓÔªËØ¡£

127.0.0.1:6379>
rpush list-key v1
(integer) 1
127.0.0.1:6379> rpush list-key v2
(integer) 2
127.0.0.1:6379> rpush list-key v1
(integer) 3
127.0.0.1:6379> lrange list-key 0 -1
1) "v1"
2) "v2"
3) "v1"
127.0.0.1:6379> lindex list-key 1
"v2"
127.0.0.1:6379> lpop list
(nil)
127.0.0.1:6379> lpop list-key
"v1"
127.0.0.1:6379> lrange list-key 0 -1
1) "v2"
2) "v1" |
ÎÒÃÇ¿ÉÒÔ¿´³ö list ¾ÍÊÇÒ»¸ö¼òµ¥µÄ×Ö·û´®¼¯ºÏ£¬ºÍ Java ÖÐµÄ list Ïà²î²»´ó£¬Çø±ð¾ÍÊÇÕâÀïµÄ
list ´æ·ÅµÄÊÇ×Ö·û´®¡£list ÄÚµÄÔªËØÊÇ¿ÉÖØ¸´µÄ¡£
set
redis µÄ set ÊÇ×Ö·û´®ÀàÐ͵ÄÎÞÐò¼¯ºÏ¡£¼¯ºÏÊÇͨ¹ý¹þÏ£±íʵÏֵģ¬Òò´ËÌí¼Ó¡¢É¾³ý¡¢²éÕҵĸ´ÔӶȶ¼ÊÇ
O£¨1£©¡£

127.0.0.1:6379>
sadd k1 v1
(integer) 1
127.0.0.1:6379> sadd k1 v2
(integer) 1
127.0.0.1:6379> sadd k1 v3
(integer) 1
127.0.0.1:6379> sadd k1 v1
(integer) 0
127.0.0.1:6379> smembers k1
1) "v3"
2) "v2"
3) "v1"
127.0.0.1:6379>
127.0.0.1:6379> sismember k1 k4
(integer) 0
127.0.0.1:6379> sismember k1 v1
(integer) 1
127.0.0.1:6379> srem k1 v2
(integer) 1
127.0.0.1:6379> srem k1 v2
(integer) 0
127.0.0.1:6379> smembers k1
1) "v3"
2) "v1" |
redis µÄ set Óë java ÖÐµÄ set »¹ÊÇÓеãÇø±ðµÄ¡£redis µÄ set ÊÇÒ»¸ö
key ¶ÔÓ¦×Å ¶à¸ö×Ö·û´®ÀàÐ굀 value£¬Ò²ÊÇÒ»¸ö×Ö·û´®ÀàÐ͵ļ¯ºÏ£¬µ«ÊÇºÍ redis µÄ list
²»Í¬µÄÊÇ set ÖеÄ×Ö·û´®¼¯ºÏÔªËØ²»ÄÜÖØ¸´£¬µ«ÊÇ list ¿ÉÒÔ¡£
Zset
redis zset ºÍ set Ò»Ñù¶¼ÊÇ ×Ö·û´®ÀàÐÍÔªËØµÄ¼¯ºÏ£¬²¢ÇÒ¼¯ºÏÄÚµÄÔªËØ²»ÄÜÖØ¸´¡£
²»Í¬µÄÊÇ zset ÿ¸öÔªËØ¶¼»á¹ØÁªÒ»¸ö double ÀàÐ͵ķÖÊý¡£redis ͨ¹ý·ÖÊýÀ´Îª¼¯ºÏÖеijÉÔ±½øÐдÓСµ½´óµÄÅÅÐò¡£
zset µÄÔªËØÊÇΨһµÄ£¬µ«ÊÇ·ÖÊý£¨score£©È´¿ÉÒÔÖØ¸´¡£

127.0.0.1:6379>
zadd zset-key 728 member1
(integer) 1
127.0.0.1:6379> zadd zset-key 982 member0
(integer) 1
127.0.0.1:6379> zadd zset-key 982 member0
(integer) 0
127.0.0.1:6379> zrange zset-key 0 -1 withscores
1) "member1"
2) "728"
3) "member0"
4) "982"
127.0.0.1:6379> zrangebyscore zset-key 0 800
withscores
1) "member1"
2) "728"
127.0.0.1:6379> zrem zset-key member1
(integer) 1
127.0.0.1:6379> zrem zset-key member1
(integer) 0
127.0.0.1:6379> zrange zset-key 0 -1 withscores
1) "member0"
2) "982" |
zset Êǰ´ÕÕ ·ÖÊäµÄ´óСÀ´ÅÅÐòµÄ¡£
С×ܽá
ÀàÐͼò½éÌØÐÔ³¡¾°string£¨×Ö·û´®£©¶þ½øÖư²È«¿ÉÒÔ°üº¬ÈκÎÊý¾Ý£¬±ÈÈç jpg ͼƬ»òÕßÐòÁл¯µÄ¶ÔÏó£¬Ò»¸ö¼ü×î´óÄÜ´æ´¢
521M---Hash£¨¹þÏ££©¼üÖµ¶Ô¼¯ºÏ£¬¼´±à³ÌÓïÑÔÖÐµÄ Map ÀàÐÍÊʺϴ洢¶ÔÏ󣬲¢ÇÒ¿ÉÒÔÏñÊý¾Ý¿âÖÐ
update Ò»ÑùÖ»ÐÞ¸ÄijһÏîÊôÐÔÖµ´æ´¢¡¢¶ÁÈ¡¡¢ÐÞ¸ÄÓû§ÊôÐÔList£¨ÁÐ±í£©Ë«ÏòÁ´±íÔöɾ¿ì£¬ÌṩÁ˲Ù×÷ijһ¶ÎÔªËØµÄ
API1¡¢×îÐÂÏûÏ¢ÅÅÐеȹ¦ÄÜ£¨ÅóÓÑȦµÄʱ¼äÏߣ©2¡¢ÏûÏ¢¶ÓÁÐSet£¨¼¯ºÏ£©¹þÏ£±íʵÏÖ£¬ÔªËز»ÄÜÖØ¸´Ìí¼Óɾ³ý²éÕҵĸ´ÔӶȶ¼ÊÇ
O(1);Ϊ¼¯ºÏÌṩÁËÇó½»¼¯¡¢²¢¼¯¡¢²î¼¯µÈ²Ù×÷¹²Í¬ºÃÓÑ£»ÀûÓÃΨһÐÔ£¬Í³¼Æ·ÃÎÊÍøÕ¾µÄËùÓжÀÁ¢ ip£»ºÃÓÑÍÆ¼öʱ£¬¸ù¾Ý
tag Çó½»¼¯£¬´óÓÚij¸öãÐÖµ¾Í¿ÉÒÔÍÆ¼öZset£¨ÓÐÐò¼¯ºÏ£©½« Set ÖеÄÔªËØÔö¼ÓÒ»¸öÈ¨ÖØ²ÎÊý score£¬ÔªËذ´
score ÓÐÐòÅÅÁÐÊý¾Ý²åÈ뼯ºÏʱ£¬ÒѾ½øÐÐÌìÈ»ÅÅÐòÅÅÐаñ£»´øÈ¨ÖصÄÏûÏ¢¶ÓÁÐ
»ù±¾ÃüÁî
×ÔÐвéÔÄ
·¢²¼¶©ÔÄ
Ò»°ã²»ÓÃ Redis ×öÏûÏ¢·¢²¼¶©ÔÄ¡£
¼ò½é
Redis ·¢²¼¶©ÔÄ (pub/sub) ÊÇÒ»ÖÖÏûϢͨÐÅģʽ£º·¢ËÍÕß (pub) ·¢ËÍÏûÏ¢£¬¶©ÔÄÕß
(sub) ½ÓÊÕÏûÏ¢¡£
Redis ¿Í»§¶Ë¿ÉÒÔ¶©ÔÄÈÎÒâÊýÁ¿µÄƵµÀ¡£
ÏÂͼչʾÁËÆµµÀ channel1 £¬ ÒÔ¼°¶©ÔÄÕâ¸öƵµÀµÄÈý¸ö¿Í»§¶Ë ¡ª¡ª client2 ¡¢ client5
ºÍ client1 Ö®¼äµÄ¹ØÏµ£º

µ±ÓÐÐÂÏûϢͨ¹ý PUBLISH ÃüÁî·¢Ë͸øÆµµÀ channel1 ʱ£¬ Õâ¸öÏûÏ¢¾Í»á±»·¢Ë͸ø¶©ÔÄËüµÄÈý¸ö¿Í»§¶Ë£º

ʵÀý
ÒÔÏÂʵÀýÑÝʾÁË·¢²¼¶©ÔÄÊÇÈçºÎ¹¤×÷µÄ¡£ÔÚÎÒÃÇʵÀýÖÐÎÒÃÇ´´½¨Á˶©ÔÄÆµµÀÃûΪ redisChat:
127.0.0.1:6379>
SUBsCRIBE redisChat
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "redisChat" |
ÏÖÔÚ£¬ÎÒÃÇÏÈÖØÐ¿ªÆô¸ö redis ¿Í»§¶Ë£¬È»ºóÔÚͬһ¸öƵµÀ redisChat ·¢²¼Á½´ÎÏûÏ¢£¬¶©ÔÄÕß¾ÍÄܽÓÊÕµ½ÏûÏ¢¡£
127.0.0.1:6379>
PUBLISH redisChat "send message"
(integer) 1
127.0.0.1:6379> PUBLISH redisChat "hello
world"
(integer) 1
# ¶©ÔÄÕߵĿͻ§¶ËÏÔʾÈçÏÂ
1) "message"
2) "redisChat"
3) "send message"
1) "message"
2) "redisChat"
3) "hello world" |
·¢²¼¶©Ôij£ÓÃÃüÁî
×ÔÐвéÔÄ
ÊÂÎñ
redis ÊÂÎñÒ»´Î¿ÉÒÔÖ´ÐжàÌõÃüÁ·þÎñÆ÷ÔÚÖ´ÐÐÃüÁîÆÚ¼ä£¬²»»áÈ¥Ö´ÐÐÆäËû¿Í»§¶ËµÄÃüÁîÇëÇó¡£
ÊÂÎñÖеĶàÌõÃüÁî±»Ò»´ÎÐÔ·¢Ë͸ø·þÎñÆ÷£¬¶ø²»ÊÇÒ»ÌõÒ»ÌõµØ·¢ËÍ£¬ÕâÖÖ·½Ê½±»³ÆÎªÁ÷Ë®Ïߣ¬Ëü¿ÉÒÔ¼õÉÙ¿Í»§¶ËÓë·þÎñÆ÷Ö®¼äµÄÍøÂçͨÐÅ´ÎÊý´Ó¶øÌáÉýÐÔÄÜ¡£
Redis ×î¼òµ¥µÄÊÂÎñʵÏÖ·½Ê½ÊÇʹÓà MULTI ºÍ EXEC ÃüÁÊÂÎñ²Ù×÷°üΧÆðÀ´¡£
ÅúÁ¿²Ù×÷ÔÚ·¢ËÍ EXEC ÃüÁîǰ±»·ÅÈë¶ÓÁлº´æ¡£
ÊÕµ½ EXEC ÃüÁîºó½øÈëÊÂÎñÖ´ÐУ¬ÊÂÎñÖÐÈÎÒâÃüÁîÖ´ÐÐʧ°Ü£¬ÆäÓàÃüÁîÒÀÈ»±»Ö´ÐС£Ò²¾ÍÊÇ˵ Redis
ÊÂÎñ²»±£Ö¤Ô×ÓÐÔ¡£
ÔÚÊÂÎñÖ´Ðйý³ÌÖУ¬ÆäËû¿Í»§¶ËÌá½»µÄÃüÁîÇëÇó²»»á²åÈëµ½ÊÂÎñÖ´ÐÐÃüÁîÐòÁÐÖС£
Ò»¸öÊÂÎñ´Ó¿ªÊ¼µ½Ö´Ðлá¾ÀúÒÔÏÂÈý¸ö½×¶Î£º
¿ªÊ¼ÊÂÎñ¡£
ÃüÁîÈë¶Ó¡£
Ö´ÐÐÊÂÎñ¡£
ʵÀý
ÒÔÏÂÊÇÒ»¸öÊÂÎñµÄÀý×Ó£¬ ËüÏÈÒÔ MULTI ¿ªÊ¼Ò»¸öÊÂÎñ£¬ È»ºó½«¶à¸öÃüÁîÈë¶Óµ½ÊÂÎñÖУ¬ ×îºóÓÉ
EXEC ÃüÁî´¥·¢ÊÂÎñ£¬ Ò»²¢Ö´ÐÐÊÂÎñÖеÄËùÓÐÃüÁ
redis 127.0.0.1:6379>
MULTI
OK
redis 127.0.0.1:6379> SET book-name "Mastering
C++ in 21 days"
QUEUED
redis 127.0.0.1:6379> GET book-name
QUEUED
redis 127.0.0.1:6379> SADD tag "C++"
"Programming" "Mastering Series"
QUEUED
redis 127.0.0.1:6379> SMEMBERS tag
QUEUED
redis 127.0.0.1:6379> EXEC
1) OK
2) "Mastering C++ in 21 days"
3) (integer) 3
4) 1) "Mastering Series"
2) "C++"
3) "Programming" |
µ¥¸ö Redis ÃüÁîµÄÖ´ÐÐÊÇÔ×ÓÐԵ쬵« Redis ûÓÐÔÚÊÂÎñÉÏÔö¼ÓÈκÎά³ÖÔ×ÓÐԵĻúÖÆ£¬ËùÒÔ
Redis ÊÂÎñµÄÖ´Ðв¢²»ÊÇÔ×ÓÐԵġ£
ÊÂÎñ¿ÉÒÔÀí½âΪһ¸ö´ò°üµÄÅúÁ¿Ö´Ðнű¾£¬µ«ÅúÁ¿Ö¸Áî²¢·ÇÔ×Ó»¯µÄ²Ù×÷£¬ÖмäijÌõÖ¸ÁîµÄʧ°Ü²»»áµ¼ÖÂÇ°ÃæÒÑ×öÖ¸ÁîµÄ»Ø¹ö£¬Ò²²»»áÔì³ÉºóÐøµÄÖ¸Áî²»×ö¡£
ÕâÊǹÙÍøÉϵÄ˵Ã÷ From redis docs on transactions:
It's important to note that even when a command fails,
all the other commands in the queue are processed
¨C Redis will not stop the processing of commands.
±ÈÈ磺
redis 127.0.0.1:7000>
multi
OK
redis 127.0.0.1:7000> set a aaa
QUEUED
redis 127.0.0.1:7000> set b bbb
QUEUED
redis 127.0.0.1:7000> set c ccc
QUEUED
redis 127.0.0.1:7000> exec
1) OK
2) OK
3) OK |
Èç¹ûÔÚ set b bbb ´¦Ê§°Ü£¬set a Òѳɹ¦²»»á»Ø¹ö£¬set c »¹»á¼ÌÐøÖ´ÐС£
Redis ÊÂÎñÃüÁî
ϱíÁгöÁË redis ÊÂÎñµÄÏà¹ØÃüÁ
ÐòºÅÃüÁî¼°ÃèÊö1DISCARD È¡ÏûÊÂÎñ£¬·ÅÆúÖ´ÐÐÊÂÎñ¿éÄÚµÄËùÓÐÃüÁî¡£2EXEC Ö´ÐÐËùÓÐÊÂÎñ¿éÄÚµÄÃüÁî¡£3MULTI
±ê¼ÇÒ»¸öÊÂÎñ¿éµÄ¿ªÊ¼¡£4UNWATCH È¡Ïû WATCH ÃüÁî¶ÔËùÓÐ key µÄ¼àÊÓ¡£5WATCH
key [key ...] ¼àÊÓÒ»¸ö (»ò¶à¸ö) key £¬Èç¹ûÔÚÊÂÎñÖ´ÐÐ֮ǰÕâ¸ö (»òÕâЩ) key
±»ÆäËûÃüÁîËù¸Ä¶¯£¬ÄÇôÊÂÎñ½«±»´ò¶Ï¡£
³Ö¾Ã»¯
Redis ÊÇÄÚ´æÐÍÊý¾Ý¿â£¬ÎªÁ˱£Ö¤Êý¾ÝÔڶϵçºó²»»á¶ªÊ§£¬ÐèÒª½«ÄÚ´æÖеÄÊý¾Ý³Ö¾Ã»¯µ½Ó²ÅÌÉÏ¡£
RDB ³Ö¾Ã»¯
½«Ä³¸öʱ¼äµãµÄËùÓÐÊý¾Ý¶¼´æ·Åµ½Ó²ÅÌÉÏ¡£
¿ÉÒÔ½«¿ìÕÕ¸´ÖƵ½ÆäËû·þÎñÆ÷´Ó¶ø´´½¨¾ßÓÐÏàͬÊý¾ÝµÄ·þÎñÆ÷¸±±¾¡£
Èç¹ûϵͳ·¢Éú¹ÊÕÏ£¬½«»á¶ªÊ§×îºóÒ»´Î´´½¨¿ìÕÕÖ®ºóµÄÊý¾Ý¡£
Èç¹ûÊý¾ÝÁ¿´ó£¬±£´æ¿ìÕÕµÄʱ¼ä»áºÜ³¤¡£
AOF ³Ö¾Ã»¯
½«Ð´ÃüÁîÌí¼Óµ½ AOF Îļþ£¨append only file£©Ä©Î²¡£
ʹÓà AOF ³Ö¾Ã»¯ÐèÒªÉèÖÃͬ²½Ñ¡Ï´Ó¶øÈ·±£Ð´ÃüÁîͬ²½µ½´ÅÅÌÎļþÉϵÄʱ»ú¡£ÕâÊÇÒòΪ¶ÔÎļþ½øÐÐдÈë²¢²»»áÂíÉϽ«ÄÚÈÝͬ²½µ½´ÅÅÌÉÏ£¬¶øÊÇÏÈ´æ´¢µ½»º³åÇø£¬È»ºóÓɲÙ×÷ϵͳ¾ö¶¨Ê²Ã´Ê±ºòͬ²½µ½´ÅÅÌ¡£
Ñ¡Ïîͬ²½ÆµÂÊalwaysÿ¸öдÃüÁͬ²½eyerysecÿÃëͬ²½Ò»´ÎnoÈòÙ×÷ϵͳÀ´¾ö¶¨ºÎʱͬ²½
always Ñ¡Ïî»áÑÏÖØ¼õµÍ·þÎñÆ÷µÄÐÔÄÜ
everysec Ñ¡Ïî±È½ÏºÏÊÊ£¬¿ÉÒÔ±£Ö¤ÏµÍ³±ÀÀ£Ê±Ö»»á¶ªÊ§Ò»Ãë×óÓÒµÄÊý¾Ý£¬²¢ÇÒ Redis ÿÃëÖ´ÐÐÒ»´Îͬ²½¶Ô·þÎñÆ÷¼¸ºõûÓÐÈκÎÓ°Ïì¡£
no Ñ¡Ïî²¢²»Äܸø·þÎñÆ÷ÐÔÄÜ´øÀ´¶à´óµÄÌáÉý£¬¶øÇÒ»áÔö¼Óϵͳ±ÀÀ£Ê±Êý¾Ý¶ªÊ§µÄÊýÁ¿¡£
Ëæ×Å·þÎñÆ÷дÇëÇóµÄÔö¶à£¬AOF Îļþ»áÔ½À´Ô½´ó¡£Redis ÌṩÁËÒ»ÖÖ½« AOF ÖØÐ´µÄÌØÐÔ£¬Äܹ»È¥³ý
AOF ÎļþÖеÄÈßÓàдÃüÁî¡£
¸´ÖÆ
ͨ¹ýʹÓà slaveof host port ÃüÁîÀ´ÈÃÒ»¸ö·þÎñÆ÷³ÉΪÁíÒ»¸ö·þÎñÆ÷µÄ´Ó·þÎñÆ÷¡£
Ò»¸ö´Ó·þÎñÆ÷Ö»ÄÜÓÐÒ»¸öÖ÷·þÎñÆ÷£¬²¢ÇÒ²»Ö§³ÖÖ÷Ö÷¸´ÖÆ¡£
Á¬½Ó¹ý³Ì
Ö÷·þÎñÆ÷´´½¨¿ìÕÕÎļþ£¬¼´ RDB Îļþ£¬·¢Ë͸ø´Ó·þÎñÆ÷£¬²¢ÔÚ·¢ËÍÆÚ¼äʹÓûº³åÇø¼Ç¼ִÐеÄдÃüÁî¡£¿ìÕÕÎļþ·¢ËÍÍê±ÏÖ®ºó£¬¿ªÊ¼Ïñ´Ó·þÎñÆ÷·¢ËÍ´æ´¢ÔÚ»º³åÇøµÄдÃüÁî¡£
´Ó·þÎñÆ÷¶ªÆúËùÓоÉÊý¾Ý£¬ÔØÈëÖ÷·þÎñÆ÷·¢À´µÄ¿ìÕÕÎļþ£¬Ö®ºó´Ó·þÎñÆ÷¿ªÊ¼½ÓÊÜÖ÷·þÎñÆ÷·¢À´µÄдÃüÁî¡£
Ö÷·þÎñÆ÷ÿִÐÐÒ»´ÎдÃüÁ¾ÍÏò´Ó·þÎñÆ÷·¢ËÍÏàͬµÄдÃüÁî¡£
Ö÷´ÓÁ´
Ëæ×ŸºÔز»¶ÏÉÏÉý£¬Ö÷·þÎñÆ÷ÎÞ·¨ºÜ¿ìµÄ¸üÐÂËùÓдӷþÎñÆ÷£¬»òÕßÖØÐÂÁ¬½ÓºÍÖØÐÂͬ²½´Ó·þÎñÆ÷½«µ¼ÖÂϵͳ³¬ÔØ¡£ÎªÁ˽â¾öÕâ¸öÎÊÌ⣬¿ÉÒÔ´´½¨Ò»¸öÖмä²ãÀ´·Öµ£Ö÷·þÎñÆ÷µÄ¸´Öƹ¤×÷¡£Öмä²ãµÄ·þÎñÆ÷ÊÇ×îÉϲã·þÎñÆ÷µÄ´Ó·þÎñÆ÷£¬ÓÖÊÇ×îϲã·þÎñÆ÷µÄÖ÷·þÎñÆ÷¡£

ÉÚ±ø
Sentinel£¨ÉÚ±ø£©¿ÉÒÔ¼àÌý¼¯ÈºÖеķþÎñÆ÷£¬²¢ÔÚÖ÷·þÎñÆ÷½øÈëÏÂÏß״̬ʱ£¬×Ô¶¯´Ó´Ó·þÎñÆ÷ÖÐÑ¡¾Ù´¦ÐµÄÖ÷·þÎñÆ÷¡£
·ÖƬ
·ÖƬÊǽ«Êý¾Ý»®·ÖΪ¶à¸ö²¿·ÖµÄ·½·¨£¬¿ÉÒÔ½«Êý¾Ý´æ´¢µ½¶ą̀»úÆ÷ÀïÃæ£¬ÕâÖÖ·½·¨ÔÚ½â¾öijЩÎÊÌâʱ¿ÉÒÔ»ñµÃÏßÐÔ¼¶±ðµÄÐÔÄÜÌáÉý¡£
¼ÙÉèÓÐ 4 ¸ö Redis ʵÀý R0, R1, R2, R3, »¹Óкܶà±íʾÓû§µÄ¼ü user:1,
user:2, ... , Óв»Í¬µÄ·½Ê½À´Ñ¡ÔñÒ»¸öÖ¸¶¨µÄ¼ü´æ´¢ÔÚÄĸöʵÀýÖС£
×î¼òµ¥µÄÊÇ·¶Î§·ÖƬ£¬ÀýÈçÓû§ id ´Ó 0 ~ 1000 µÄ´æ´¢µ½ÊµÀý R0 ÖУ¬Óû§ id ´Ó
1001 ~ 2000 µÄ´æ´¢µ½ÊµÀý R1ÖУ¬µÈµÈ¡£µ«ÊÇÕâÑùÐèҪά»¤Ò»ÕÅÓ³É䷶Χ±í£¬Î¬»¤²Ù×÷´ú¼Û¸ß¡£
»¹ÓÐÒ»ÖÖÊǹþÏ£·ÖƬ¡£Ê¹Óà CRC32 ¹þÏ£º¯Êý½«¼üת»»ÎªÒ»¸öÊý×Ö£¬ÔÙ¶ÔʵÀýÊýÁ¿ÇóÄ£¾ÍÄÜÖªµÀ´æ´¢µÄʵÀý¡£
¸ù¾ÝÖ´ÐÐ·ÖÆ¬µÄλÖ㬿ÉÒÔ·ÖΪÈýÖÖ·ÖÆ¬·½Ê½£º
¿Í»§¶Ë·ÖƬ£º¿Í»§¶ËʹÓÃÒ»ÖÂÐÔ¹þÏ£µÈËã·¨¾ö¶¨Ó¦µ±·Ö²¼µ½Äĸö½Úµã¡£
´úÀí·ÖƬ£º½«¿Í»§¶ËµÄÇëÇó·¢Ë͵½´úÀíÉÏ£¬ÓÉ´úÀíת·¢µ½ÕýÈ·µÄ½ÚµãÉÏ¡£
·þÎñÆ÷·ÖƬ£ºRedis Cluster¡£
|