美文网首页
Redis的基本类型之一:List

Redis的基本类型之一:List

作者: 程序员小杰 | 来源:发表于2020-07-11 13:11 被阅读0次

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

1、lpush key value1 [value2]

将一个或多个值从左到右依次插入到列表头部

127.0.0.1:6379> lpush k1 gongj yuanj
(integer) 2

2、lrange key start stop

获取列表指定范围内的元素

127.0.0.1:6379> lrange k1 0 -1
1) "yuanj"
2) "gongj"

3、rpush key value1 [value2]

将一个或多个值从右到左依次插入到列表头部

127.0.0.1:6379> rpush k2 gognj yuanj
(integer) 2
127.0.0.1:6379> lrange k2 0 -1
1) "gognj"
2) "yuanj"

4、rpop key

移除列表的最后一个元素,返回值为移除的元素

127.0.0.1:6379> lrange k2 0 -1
1) "gognj"
2) "yuanj"
127.0.0.1:6379> rpop k2
"yuanj"

5、lpop key

移除列表的第一个元素,返回值为移除的元素

127.0.0.1:6379> lrange k1 0 -1
1) "yuanj"
2) "gongj"
127.0.0.1:6379> lpop k1
"yuanj"

6、lindex key index

通过索引获取列表中的元素

127.0.0.1:6379> lpush k3 gongj yuanj gong yuan
(integer) 4
127.0.0.1:6379> lrange k3 0 -1
1) "yuan"
2) "gong"
3) "yuanj"
4) "gongj"
127.0.0.1:6379> lindex k3 3
"gongj"

7、ltrim key start stop

对一个列表进行修剪,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除

127.0.0.1:6379> ltrim k3 0 2
OK
127.0.0.1:6379> lrange k3 0 -1
1) "yuan"
2) "gong"
3) "yuanj"

8、blpop key1 [key2 ] timeout

移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止

127.0.0.1:6379> blpop k3 30
1) "k3"
2) "yuan"
127.0.0.1:6379> blpop k3 30
1) "k3"
2) "gong"
127.0.0.1:6379> blpop k3 30
1) "k3"
2) "yuanj"
127.0.0.1:6379> blpop k3 30    #已经没有元素可移除,被阻塞
(nil)
(30.06s)

9、brpop key1 [key2 ] timeout

移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止

10、brpoplpush source destination timeout

从列表的尾部中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止

127.0.0.1:6379> lrange k2 0 -1
1) "gognj"
127.0.0.1:6379> lrange k3 0 -1
1) "yuan"
2) "gong"
3) "yuanj"

127.0.0.1:6379> brpoplpush k3 k2 10
"yuanj"
127.0.0.1:6379> brpoplpush k3 k2 10
"gong"
127.0.0.1:6379> brpoplpush k3 k2 10
"yuan"
127.0.0.1:6379> brpoplpush k3 k2 10
(nil)
(10.02s)

127.0.0.1:6379> lrange k2 0 -1
1) "yuan"
2) "gong"
3) "yuanj"
4) "gognj"

11、lrem key count value

移除列表元素
count 的值可以是以下几种:
count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。
count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。
count = 0 : 移除表中所有与 VALUE 相等的值

127.0.0.1:6379> lpush k3 gongj yuanj gong yuan
(integer) 4
127.0.0.1:6379> lrem k3 0 gongj
(integer) 1
127.0.0.1:6379> lrange k3 0 -1
1) "yuan"
2) "gong"
3) "yuanj"

12、linsert key BEFORE|AFTER pivot value

在列表中某个存在值(pivot)前或后插入元素,key和pivot不存在,不进行任何操作

127.0.0.1:6379> lrange k2 0 -1
1) "yuan"
2) "gong"
3) "yuanj"
4) "gognj"

127.0.0.1:6379> linsert k2 before yuan yyyyy
(integer) 5

127.0.0.1:6379> lrange k2 0 -1
1) "yyyyy"
2) "yuan"
3) "gong"
4) "yuanj"
5) "gognj"

13、LLEN key

获取列表长度

127.0.0.1:6379> llen k2
(integer) 5

14、lpushx key value

将一个值插入到已存在的列表头部

127.0.0.1:6379> lpushx k2 xxxx
(integer) 6
127.0.0.1:6379> lrange k2 0 -1
1) "xxxx"
2) "yyyyy"
3) "yuan"
4) "gong"
5) "yuanj"
6) "gognj"

15、RPUSHX key value

将一个值插入到已存在的列表尾部

127.0.0.1:6379> rpushx k1 yyyy
(integer) 3
127.0.0.1:6379> lrange k1 0 -1
1) "gognj"
2) "gongj"
3) "yyyy"

16、lset key index value

通过索引设置列表元素的值

127.0.0.1:6379> lset k2 2 hhhh
OK
127.0.0.1:6379> lrange k2 0 -1
1) "xxxx"
2) "yyyyy"
3) "hhhh"
4) "gong"
5) "yuanj"
6) "gognj"
127.0.0.1:6379> 

17、rpoplpush source destination

移除列表的最后一个元素,并将该元素添加到另一个列表并返回

127.0.0.1:6379> lrange k1 0 -1
1) "gongj"
127.0.0.1:6379> rpoplpush k2 k1
"gognj"
127.0.0.1:6379> lrange k1 0 -1
1) "gognj"
2) "gongj"

以上所以只是均来自于大佬江南一点雨
个人博客:[http://www.javaboy.org/]

相关文章

网友评论

      本文标题:Redis的基本类型之一:List

      本文链接:https://www.haomeiwen.com/subject/oiabcktx.html