lpush key value 作用: 把值插入到链接头部 127.0.0.1:6379> lpush character a (integer) 1 127.0.0.1:6379> rpush character b (integer) 2 127.0.0.1:6379> rpush character c (integer) 3 127.0.0.1:6379> lpush character 0 (integer) 4
lrange key start stop 作用: 返回链表中[start ,stop]中的元素 规律: 左数从0开始,右数从-1开始 127.0.0.1:6379> lrange character 1 2 1) "a" 2) "b" 127.0.0.1:6379> lrange character 1 3 1) "a" 2) "b" 3) "c" 127.0.0.1:6379> lrange character 0 3 1) "0" 2) "a" 3) "b" 4) "c" 127.0.0.1:6379> lrange character 0 -1//所有元素 1) "0" 2) "a" 3) "b" 4) "c"
rpop key 作用: 返回并删除链表尾元素 127.0.0.1:6379> lpop character "0" 127.0.0.1:6379> lrange character 0 -1 1) "a" 2) "b" 3) "c" 127.0.0.1:6379> rpop character "c" 127.0.0.1:6379> lrange character 0 -1 1) "a" 2) "b"
lrem key count value 作用: 从key链表中删除 value值 注: 删除count的绝对值个value后结束 Count>0 从表头删除 Count<0 从表尾删除 127.0.0.1:6379> lpush answer a b c a b d a (integer) 7 127.0.0.1:6379> lrange answer 0 -1 1) "a" 2) "d" 3) "b" 4) "a" 5) "c" 6) "b" 7) "a" 127.0.0.1:6379> lrem answer 1 b (integer) 1 127.0.0.1:6379> lrange answer 0 -1 1) "a" 2) "d" 3) "a" 4) "c" 5) "b" 6) "a" 127.0.0.1:6379> lrem answer -2 a (integer) 2 127.0.0.1:6379> lrange answer 0 -1 1) "a" 2) "d" 3) "c" 4) "b"
ltrim key start stop 作用: 剪切key对应的链接,切[start,stop]一段,并把该段重新赋给key 127.0.0.1:6379> rpush character a b c d e f (integer) 6 127.0.0.1:6379> lrange character 0 -1 1) "a" 2) "b" 3) "c" 4) "d" 5) "e" 6) "f" 127.0.0.1:6379> ltrim character 2 5 OK 127.0.0.1:6379> lrange character 0 -1 1) "c" 2) "d" 3) "e" 4) "f" 127.0.0.1:6379> ltrim character 1 -2 OK 127.0.0.1:6379> lrange character 0 -1 1) "d" 2) "e"
llen key 作用:计算链接表的元素个数 lindex key index 作用: 返回index索引上的值, 127.0.0.1:6379> lrange character 0 -1 1) "d" 2) "e" 127.0.0.1:6379> llen character (integer) 2 127.0.0.1:6379> rpush character a b c (integer) 5 127.0.0.1:6379> llen character (integer) 5 127.0.0.1:6379> lindex character 4 "c" 127.0.0.1:6379> lindex character 0 "d"
linsert key after|before search value 作用: 在key链表中寻找’search’,并在search值之前|之后,.插入value 注: 一旦找到一个search后,命令就结束了,因此不会插入多个value 127.0.0.1:6379> rpush num 1 3 6 8 9 (integer) 5 127.0.0.1:6379> lrange num 0 -1 1) "1" 2) "3" 3) "6" 4) "8" 5) "9" 127.0.0.1:6379> linsert num before 3 2 (integer) 6 127.0.0.1:6379> lrange num 0 -1 1) "1" 2) "2" 3) "3" 4) "6" 5) "8" 6) "9" 127.0.0.1:6379> linsert num after 9 10 (integer) 7 127.0.0.1:6379> lrange num 0 -1 1) "1" 2) "2" 3) "3" 4) "6" 5) "8" 6) "9" 7) "10"
rpoplpush source dest 作用: 把source的尾部拿出,放在dest的头部, 并返回 该单元值 业务逻辑: 1:Rpoplpush task bak 2:接收返回值,并做业务处理 3:如果成功,rpop bak 清除任务. 如不成功,下次从bak表里取任务
127.0.0.1:6379> rpush task a b c d
(integer) 4
127.0.0.1:6379> lrange task 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
127.0.0.1:6379> rpoplpush task job
"d"
127.0.0.1:6379> lrange job 0 -1
1) "d"
127.0.0.1:6379> rpoplpush task job
"c"
127.0.0.1:6379> lrange job 0 -1
1) "c"
2) "d"
127.0.0.1:6379> lrange task 0 -1
1) "a"
2) "b"
brpop ,blpop key timeout 作用:等待弹出key的尾/头元素, Timeout为等待超时时间 如果timeout为0,则一直等待 场景: 长轮询Ajax,在线聊天时,能够用到