redis基本操作——list
一、将一个或多个值插入到列表头部
命令:lpush
格式:lpush key value1 [value2] ...
127.0.0.1:6379> lpush list_key 1(integer)
1127.0.0.1:6379> lpush list_key 234
(integer) 4
二、获取列表指定范围内的元素
命令:lrange
格式:lrange key begin_index end_index
127.0.0.1:6379> lpush list_key 1(integer)
1127.0.0.1:6379> lpush list_key 234
(integer) 4
127.0.0.1:6379> lrange list_key 01
1) "4"
2) "3"
127.0.0.1:6379> lrange list_key 00
1) "4"
127.0.0.1:6379> lrange list_key 23
1) "2"
2) "1"
127.0.0.1:6379> lrange list_key 010
1) "4"
2) "3"
3) "2"
4) "1"
三、将一个值插入到已存在的列表头部
命令:lpushx
格式:lpushx key value
127.0.0.1:6379> del list_key(integer)
1127.0.0.1:6379> lrange list_key 010
(empty list or set)
127.0.0.1:6379> lpushx list_key 1
(integer) 0
127.0.0.1:6379> lrange list_key 010
(empty list or set)
127.0.0.1:6379> lpush list_key 1
(integer) 1
127.0.0.1:6379> lrange list_key 010
1) "1"
127.0.0.1:6379> lpushx list_key 2
(integer) 2
127.0.0.1:6379> lrange list_key 010
1) "2"
2) "1"
四、将一个或多个值插入到列表尾部
命令:rpush
格式:rpush key value1 [value2] ...
127.0.0.1:6379> lrange list_key 0101) "2"
2) "1"
127.0.0.1:6379> lpush list_key 3
(integer) 3
127.0.0.1:6379> lrange list_key 010
1) "3"
2) "2"
3) "1"
127.0.0.1:6379> rpush list_key 4
(integer) 4
127.0.0.1:6379> lrange list_key 010
1) "3"
2) "2"
3) "1"
4) "4"
五、将一个值插入到已存在的列表尾部
命令:rpushx
格式:rpushx key value
127.0.0.1:6379> del list_key(integer)
1127.0.0.1:6379> lrange list_key 010
(empty list or set)
127.0.0.1:6379> rpushx list_key 1
(integer) 0
127.0.0.1:6379> lrange list_key 010
(empty list or set)
127.0.0.1:6379> rpush list_key 1
(integer) 1
127.0.0.1:6379> lrange list_key 010
1) "1"
127.0.0.1:6379> rpushx list_key 2
(integer) 2
127.0.0.1:6379> lrange list_key 010
1) "1"
2) "2"
六、移出并获取列表的第一个元素
命令:lpop
格式:lpop key
127.0.0.1:6379> del list_key(integer)
1127.0.0.1:6379> lpush list_key 12345
(integer) 5
127.0.0.1:6379> lrange list_key 010
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:6379> lpop list_key
"5"
127.0.0.1:6379> lrange list_key 010
1) "4"
2) "3"
3) "2"
4) "1"
七、移出并获取列表的最后一个元素
命令:rpop
格式:rpop key
127.0.0.1:6379> lrange list_key 0101) "4"
2) "3"
3) "2"
4) "1"
127.0.0.1:6379> rpop list_key
"1"
127.0.0.1:6379> lrange list_key 010
1) "4"
2) "3"
3) "2"
八、获取列表长度
命令:llen
格式:llen key
127.0.0.1:6379> lrange list_key 0101) "4"
2) "3"
3) "2"
127.0.0.1:6379> llen list_key
(integer) 3
127.0.0.1:6379> lpush list_key 567
(integer) 6
127.0.0.1:6379> lrange list_key 010
1) "7"
2) "6"
3) "5"
4) "4"
5) "3"
6) "2"
127.0.0.1:6379> llen list_key
(integer) 6
九、通过索引获取列表中的元素
命令:lindex
格式:lindex key index
127.0.0.1:6379> lrange list_key 0101) "7"
2) "6"
3) "5"
4) "4"
5) "3"
6) "2"
127.0.0.1:6379> lindex list_key 4
"3"
127.0.0.1:6379> lindex list_key 0
"7"
127.0.0.1:6379> lindex list_key 7
(nil)
127.0.0.1:6379> lindex list_key 6
(nil)
127.0.0.1:6379> lindex list_key 5
"2"
十、移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
命令:blpop
格式:blpop key1 [key2] timeout
对于有元素的list:
127.0.0.1:6379> lpush l1 1234(integer)
4127.0.0.1:6379> lpush l2 a b c d
(integer) 4
127.0.0.1:6379> lrange l1 010
1) "4"
2) "3"
3) "2"
4) "1"
127.0.0.1:6379> lrange l2 010
1) "d"
2) "c"
3) "b"
4) "a"
127.0.0.1:6379> blpop l1 l2 1
1) "l1"
2) "4"
127.0.0.1:6379> blpop l1 l2 1
1) "l1"
2) "3"
127.0.0.1:6379> blpop l1 l2 1
1) "l1"
2) "2"
127.0.0.1:6379> blpop l1 l2 1
1) "l1"
2) "1"
127.0.0.1:6379> blpop l1 l2 1
1) "l2"
2) "d"
127.0.0.1:6379> blpop l1 l2 1
1) "l2"
2) "c"
127.0.0.1:6379> blpop l1 l2 1
1) "l2"
2) "b"
127.0.0.1:6379> blpop l1 l2 1
1) "l2"
2) "a"
127.0.0.1:6379> blpop l1 l2 1
//1s后
(nil)
(1.05s)
对于无元素的list:
127.0.0.1:6379> blpop l1 l2 1//1s后
(nil)
(1.06s)
127.0.0.1:6379> blpop l1 l2 10//另一客户端调用 lpush l1 1
1) "l1"
2) "1"
(1.54s)
127.0.0.1:6379> blpop l1 l2 0//一直等待
十一、移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
命令:brpop
格式:brpop key1 [key2] timeout
操作与blpop相同,此处略
十二、移除列表的最后一个元素,并将该元素添加到另一个列表并返回
命令:rpoplpush
格式:rpoplpush source target
127.0.0.1:6379> del l1 l2(integer)
1127.0.0.1:6379> lpush l1 123
(integer) 3
127.0.0.1:6379> lrange l1 010
1) "3"
2) "2"
3) "1"
127.0.0.1:6379> lrange l2 010
(empty list or set)
127.0.0.1:6379> rpoplpush l1 l2
"1"
127.0.0.1:6379> lrange l1 010
1) "3"
2) "2"
127.0.0.1:6379> lrange l2 010
1) "1"
127.0.0.1:6379> rpoplpush l1 l2
"2"
127.0.0.1:6379> rpoplpush l1 l2
"3"
127.0.0.1:6379> rpoplpush l1 l2
(nil)
127.0.0.1:6379> lrange l1 010
(empty list or set)
127.0.0.1:6379> lrange l2 010
1) "3"
2) "2"
3) "1"
十三、从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
命令:brpoplpush
格式:brpoplpush source target timeout
source有元素时:
127.0.0.1:6379> del l1 l2(integer)
0127.0.0.1:6379> lpush l1 123
(integer) 3
127.0.0.1:6379> lrange l1 010
1) "3"
2) "2"
3) "1"
127.0.0.1:6379> lrange l2 010
(empty list or set)
127.0.0.1:6379> brpoplpush l1 l2 1
"1"
127.0.0.1:6379> lrange l1 010
1) "3"
2) "2"
127.0.0.1:6379> lrange l2 010
1) "1"
127.0.0.1:6379> brpoplpush l1 l2 1
"2"
127.0.0.1:6379> brpoplpush l1 l2 1
"3"
127.0.0.1:6379> brpoplpush l1 l2 1
//1s后
(nil)
(1.06s)
127.0.0.1:6379> lrange l1 010
(empty list or set)
127.0.0.1:6379> lrange l2 010
1) "3"
2) "2"
3) "1"
source无元素时,与blpop brpop类似
十四、在列表的第一个指定元素pivot前或者后插入元素value
命令:linsert
格式:linsert key before|after pivot value
127.0.0.1:6379> lpush list_key 121314(integer)
6127.0.0.1:6379> lrange list_key 010
1) "4"
2) "1"//第一个指定元素"1"
3) "3"
4) "1"
5) "2"
6) "1"
127.0.0.1:6379> linsert list_key after 15
(integer) 7
127.0.0.1:6379> lrange list_key 010
1) "4"
2) "1"//第一个指定元素"1"
3) "5"
4) "3"
5) "1"
6) "2"
7) "1"
127.0.0.1:6379> linsert list_key before 16
(integer) 8
127.0.0.1:6379> lrange list_key 010
1) "4"
2) "6"
3) "1"//第一个指定元素"1"
4) "5"
5) "3"
6) "1"
7) "2"
8) "1"
十五、从列表头部开始,移除count个指定元素value
命令:lrem
格式:lrem key count value
127.0.0.1:6379> lrange list_key 0101) "4"
2) "6"
3) "1"
4) "5"
5) "3"
6) "1"
7) "2"
8) "1"
127.0.0.1:6379> lrem list_key 11
(integer) 1
127.0.0.1:6379> lrange list_key 010
1) "4"
2) "6"
3) "5"
4) "3"
5) "1"
6) "2"
7) "1"
127.0.0.1:6379> lrem list_key 21
(integer) 2
127.0.0.1:6379> lrange list_key 010
1) "4"
2) "6"
3) "5"
4) "3"
5) "2"
127.0.0.1:6379> lrem list_key 11
(integer) 0
127.0.0.1:6379> lrange list_key 010
1) "4"
2) "6"
3) "5"
4) "3"
5) "2"
十六、通过索引设置列表元素的值
命令:lset
格式:lset key index value
127.0.0.1:6379> rpush list_key 12345(integer)
5127.0.0.1:6379> lrange list_key 010
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
127.0.0.1:6379> lset list_key 010
OK
127.0.0.1:6379> lrange list_key 010
1) "10"
2) "2"
3) "3"
4) "4"
5) "5"
127.0.0.1:6379> lset list_key 310
OK
127.0.0.1:6379> lrange list_key 010
1) "10"
2) "2"
3) "3"
4) "10"
5) "5"
十七、对一个列表进行修剪,删除指定下标区间[start,stop]之外的元素
命令:ltrim
格式:ltrim key start stop
127.0.0.1:6379> del list_key(integer)
1127.0.0.1:6379> rpush list_key 123456789
(integer) 9
127.0.0.1:6379> lrange list_key 010
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
7) "7"
8) "8"
9) "9"
127.0.0.1:6379> ltrim list_key 36
OK
127.0.0.1:6379> lrange list_key 010
1) "4"
2) "5"
3) "6"
4) "7"
以上是 redis基本操作——list 的全部内容, 来源链接: utcz.com/z/533966.html