lpush/rpush:lpush从链表左边插入,rpush从链表右边插入
-
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
那么这个链表是a-->b-->c
取出链表中元素
-
127.0.0.1:6379> lrange character 1 2
-
1) "b"
-
2) "c"
-
127.0.0.1:6379> lrange character 1 3
-
1) "b"
-
2) "c"
-
127.0.0.1:6379> lrange character 0 2
-
1) "a"
-
2) "b"
-
3) "c"
看其中所有的元素:
-
127.0.0.1:6379> lrange character 0 -1
-
1) "a"
-
2) "b"
-
3) "c"
弹出元素lpop/rpop
-
127.0.0.1:6379> lpop character
-
"a"
-
127.0.0.1:6379> lrange character 0 -1
-
1) "b"
-
2) "c"
删元素:lrem[link_name] count value ,count是正数的话,从左边删除,是负数的话从链表尾端删除,count是指定删除的个数。
-
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"
截取:ltrim
-
127.0.0.1:6379> rpush test a b c d e f
-
(integer) 6
-
127.0.0.1:6379> lrange test 0 -1
-
1) "a"
-
2) "b"
-
3) "c"
-
4) "d"
-
5) "e"
-
6) "f"
-
127.0.0.1:6379> ltrim test 2 5
-
OK
-
127.0.0.1:6379> lrange test 0 -1
-
1) "c"
-
2) "d"
-
3) "e"
-
4) "f"
lindex:
-
127.0.0.1:6379> lrange test 0 -1
-
1) "c"
-
2) "d"
-
3) "e"
-
4) "f"
-
127.0.0.1:6379> lindex test 0
-
"c"
-
127.0.0.1:6379> lindex test 1
-
"d"
-
127.0.0.1:6379> lindex test 2
-
"e"
看链表长度:
-
127.0.0.1:6379> llen test
-
(integer) 4
-
127.0.0.1:6379> rpush test a v r s g w ere ge ge d ss ss
-
(integer) 16
-
127.0.0.1:6379> llen test
-
(integer) 16
linsert:
-
127.0.0.1:6379> rpush number 1 4 6 8 9
-
(integer) 5
-
127.0.0.1:6379> lrange number 0 -1
-
1) "1"
-
2) "4"
-
3) "6"
-
4) "8"
-
5) "9"
-
127.0.0.1:6379> linsert number before 4 2
-
(integer) 6
-
127.0.0.1:6379> lrange number 0 -1
-
1) "1"
-
2) "2"
-
3) "4"
-
4) "6"
-
5) "8"
-
6) "9"
-
127.0.0.1:6379> linsert number before 3 1
-
(integer) -1
-
127.0.0.1:6379> lrange number 0 -1
-
1) "1"
-
2) "2"
-
3) "4"
-
4) "6"
-
5) "8"
-
6) "9"
-
127.0.0.1:6379> linsert number after 9 10
-
(integer) 7
-
127.0.0.1:6379> lrange number 0 -1
-
1) "1"
-
2) "2"
-
3) "4"
-
4) "6"
-
5) "8"
-
6) "9"
-
7) "10"
右边弹出左边塞入:两个链表,第一个链表的尾部元素弹出到第二个链表的头部,原子性操作,构建安全队列,抢票可以这么搞。
-
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> 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:
-
127.0.0.1:6379> brpop job 20
-
1) "job"
-
2) "e"
-
(13.64s)
当前的job链表是空的,因为没有元素可以被pop,等20s,另起会话,直到另外会话添加元素的话,就会pop出去
redis队列链表使用操作
原文:http://www.cnblogs.com/yjqx/p/5692352.html