RedisÊý¾ÝÀàÐÍÖ®LISTÀàÐÍ(ËÄ)

2015-07-24 08:04:12 ¡¤ ×÷Õß: ¡¤ ä¯ÀÀ: 3
.0.0.1:6379[15]> LINDEX mylist 3 (nil)

LLEN
LLEN key
·µ»ØÁбí key µÄ³¤¶È¡£
Èç¹û key ²»´æÔÚ£¬Ôò key ±»½âÊÍΪһ¸ö¿ÕÁÐ±í£¬·µ»Ø 0 .
Èç¹û key ²»ÊÇÁбíÀàÐÍ£¬·µ»ØÒ»¸ö´íÎó¡£
ʱ¼ä¸´ÔÓ¶È£º O(1)
·µ»ØÖµ£º Áбí key µÄ³¤¶È¡£

127.0.0.1:6379[15]> LLEN job (integer) 0 127.0.0.1:6379[15]> LPUSH job "cook food" (integer) 1 127.0.0.1:6379[15]> LPUSH job "have lunch" (integer) 2 127.0.0.1:6379[15]> LLEN job (integer) 2

RPOPLPUSH
RPOPLPUSH source destination
ÃüÁîRPOPLPUSH ÔÚÒ»¸öÔ­×Óʱ¼äÄÚ£¬Ö´ÐÐÒÔÏÂÁ½¸ö¶¯×÷£º
¡¡¡¡½«Áбí source ÖеÄ×îºóÒ»¸öÔªËØ (Î²ÔªËØ) µ¯³ö£¬²¢·µ»Ø¸ø¿Í»§¶Ë¡£
¡¡¡¡½« source µ¯³öµÄÔªËØ²åÈëµ½Áбí destination £¬×÷Ϊ destination ÁбíµÄµÄÍ·ÔªËØ¡£
¾Ù¸öÀý×Ó£¬ÄãÓÐÁ½¸öÁбí source ºÍ destination £¬source ÁбíÓÐÔªËØ a, b, c £¬destination ÁбíÓÐÔªËØ x, y, z £¬Ö´ÐÐ RPOPLPUSH source destination Ö®ºó£¬source Áбí°üº¬ÔªËØ a, b £¬destination Áбí°üº¬ÔªËØ c, x, y, z £¬²¢ÇÒÔªËØ c »á±»·µ»Ø¸ø¿Í»§¶Ë¡£
Èç¹û source ²»´æÔÚ£¬Öµ nil ±»·µ»Ø£¬²¢ÇÒ²»Ö´ÐÐÆäËû¶¯×÷¡£
Èç¹û source ºÍ destination Ïàͬ£¬ÔòÁбíÖеıíÎ²ÔªËØ±»Òƶ¯µ½±íÍ·£¬²¢·µ»Ø¸ÃÔªËØ£¬¿ÉÒÔ°ÑÕâÖÖÌØÊâÇé¿öÊÓ×÷ÁбíµÄÐýת (rotation) ²Ù×÷¡£
ʱ¼ä¸´ÔÓ¶È£º O(1)
·µ»ØÖµ£º ±»µ¯³öµÄÔªËØ¡£

127.0.0.1:6379[15]> LPUSH alpha d c b a (integer) 4 127.0.0.1:6379[15]> LRANGE alpha 0 -1 1) "a" 2) "b" 3) "c" 4) "d" 127.0.0.1:6379[15]> RPOPLPUSH alpha reciver "d" 127.0.0.1:6379[15]> LRANGE alpha 0 -1 1) "a" 2) "b" 3) "c" 127.0.0.1:6379[15]> LRANGE reciver 0 -1 1) "d" 127.0.0.1:6379[15]> RPOPLPUSH alpha reciver "c" 127.0.0.1:6379[15]> LRANGE alpha 0 -1 1) "a" 2) "b" 127.0.0.1:6379[15]> LRANGE reciver 0 -1 1) "c" 2) "d" source ºÍ destination Ïàͬ 127.0.0.1:6379[15]> RPUSH number 1 2 3 4 (integer) 4 127.0.0.1:6379[15]> LRANGE number 0 -1 1) "1" 2) "2" 3) "3" 4) "4" 127.0.0.1:6379[15]> RPOPLPUSH number number "4" 127.0.0.1:6379[15]> LRANGE number 0 -1 1) "4" 2) "1" 3) "2" 4) "3" 127.0.0.1:6379[15]> RPOPLPUSH number number "3" 127.0.0.1:6379[15]> LRANGE number 0 -1 1) "3" 2) "4" 3) "1" 4) "2"

BRPOPLPUSH
BRPOPLPUSH source destination timeout
BRPOPLPUSH ÊÇRPOPLPUSH µÄ×èÈû°æ±¾£¬µ±¸ø¶¨Áбí source ²»Îª¿Õʱ£¬BRPOPLPUSH µÄ±íÏÖºÍRPOPLPUSH Ò»Ñù¡£
µ±Áбí source Ϊ¿Õʱ£¬BRPOPLPUSH ÃüÁ×èÈûÁ¬½Ó£¬Ö±µ½µÈ´ý³¬Ê±£¬»òÓÐÁíÒ»¸ö¿Í»§¶Ë¶Ô source Ö´ÐÐLPUSH »òRPUSH ÃüÁîΪֹ¡£
³¬Ê±²ÎÊý timeout ½ÓÊÜÒ»¸öÒÔÃëΪµ¥Î»µÄÊý×Ö×÷Ϊֵ¡£³¬Ê±²ÎÊýÉèΪ 0 ±íʾ×èÈûʱ¼ä¿ÉÒÔÎÞÏÞÆÚÑÓ³¤(block indefinitely) ¡£
ʱ¼ä¸´ÔÓ¶È£º O(1)
·µ»ØÖµ£º
¡¡¡¡¼ÙÈçÔÚÖ¸¶¨Ê±¼äÄÚûÓÐÈκÎÔªËØ±»µ¯³ö£¬Ôò·µ»ØÒ»¸ö nil ºÍµÈ´ýʱ³¤¡£
¡¡¡¡·´Ö®£¬·µ»ØÒ»¸öº¬ÓÐÁ½¸öÔªËØµÄÁÐ±í£¬µÚÒ»¸öÔªËØÊDZ»µ¯³öÔªËØµÄÖµ£¬µÚ¶þ¸öÔªËØÊǵȴýʱ³¤¡£

127.0.0.1:6379[15]> BRPOPLPUSH msg reciver 500 "hello" (84.71s) 127.0.0.1:6379[15]> LLEN reciver (integer) 1 127.0.0.1:6379[15]> LRANGE reciver 0 0 1) "hello" 127.0.0.1:6379[15]> BRPOPLPUSH msg reciver 1 (nil) (1.82s)