Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
一个列表最多可以包含 2的32次方 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
1、 LPUSH key value1 [value2]
将一个或多个值插入到列表头部
127.0.0.1:6379> lpush mylist xiaoming xiaoli xiaohong xiaojun lilei hanmeimei
(integer) 6
127.0.0.1:6379> LRANGE mylist 0 10
1) "hanmeimei"
2) "lilei"
3) "xiaojun"
4) "xiaohong"
5) "xiaoli"
6) "xiaoming"
2、 LPOP key
移出并获取列表的第一个元素
127.0.0.1:6379> LRANGE mylist 0 10
1) "lixiaolei"
2) "lilei"
3) "xiaojun"
4) "xiaohong"
127.0.0.1:6379> BLPOP mylist 5
1) "mylist"
2) "lixiaolei"
参数里面的“5” 表示超时间是5秒
回显的是列表的名字和被移除的元素名称(此处是列表的第一个元素)
3、 RPOP key
移除并获取列表最后一个元素
127.0.0.1:6379> LRANGE mylist 0 10
1) "lilei"
2) "xiaojun"
3) "xiaohong"
127.0.0.1:6379> BRPOP mylist 5
1) "mylist"
2) "xiaohong"
127.0.0.1:6379> LRANGE mylist 0 10
1) "lilei"
2) "xiaojun"
同样,回显的是列表的名字和被移除的元素名称(这里是列表的最后一个元素)
4、 BRPOPLPUSH source destination timeout
从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
127.0.0.1:6379> LRANGE mylist 0 10
1) "xiaohua"
2) "hanmeimei"
3) "lilei"
4) "xiaojun"
5) "xiaohong"
6) "xiaoli"
7) "xiaoming"
127.0.0.1:6379> BRPOPLPUSH mylist youlist 5
"xiaoming"
127.0.0.1:6379> LRANGE mylist 0 10
1) "xiaohua"
2) "hanmeimei"
3) "lilei"
4) "xiaojun"
5) "xiaohong"
6) "xiaoli"
127.0.0.1:6379> BRPOPLPUSH youlist youlist 5
"xiaoming"
127.0.0.1:6379> BRPOPLPUSH mylist youlist 5
"xiaoli"
127.0.0.1:6379> LRANGE youlist 0 10
1) "xiaoli"
2) "xiaoming"
5、 RPOPLPUSH source destination
移除列表的最后一个元素,并将该元素添加到另一个列表并返回
跟移除第一个元素添加到另一个列表一样,就不举例了。
6、 LINDEX key index
通过索引获取列表中的元素
127.0.0.1:6379> LRANGE mylist 0 10
1) "xiaohua"
2) "hanmeimei"
3) "lilei"
4) "xiaojun"
5) "xiaohong"
127.0.0.1:6379> LINDEX mylist 1
"hanmeimei"
索引是从0开始的
7、 LINSERT key BEFORE|AFTER pivot value
在列表的元素前或者后插入元素
127.0.0.1:6379> LRANGE mylist 0 10
1) "xiaohua"
2) "hanmeimei"
3) "lilei"
4) "xiaojun"
5) "xiaohong"
127.0.0.1:6379> LINSERT mylist before lilei lixiaolei
(integer) 6
127.0.0.1:6379> LRANGE mylist 0 10
1) "xiaohua"
2) "hanmeimei"
3) "lixiaolei"
4) "lilei"
5) "xiaojun"
6) "xiaohong"
8、 LLEN key
获取列表长度
127.0.0.1:6379> LLEN mylist
(integer) 6
返回的6“6”是列表元素的个数。
9、 LPOP key
移出并获取列表的第一个元素
127.0.0.1:6379> LRANGE mylist 0 10
1) "lilei"
2) "xiaojun"
127.0.0.1:6379> LPOP mylist
"lilei"
127.0.0.1:6379> LRANGE mylist 0 10
1) "xiaojun"
10、 LREM key count value
移除列表元素,经常用来移除相同的元素。
127.0.0.1:6379> LRANGE youlist 0 10
1) "hello"
2) "hello"
3) "hello"
4) "helloworld"
127.0.0.1:6379> LREM youlist 2 hello
(integer) 2
127.0.0.1:6379> LRANGE youlist 0 10
1) "hello"
2) "helloworld"
11、 RPUSH key value1 [value2]
在列表中添加一个或多个值,上面已经说过了。
127.0.0.1:6379> LRANGE mylist 0 10
1) "xiaojun"
127.0.0.1:6379> RPUSH mylist xiaoyi xiaoer xiaosi xiaowu xiaoliu xiaoqi
(integer) 7
127.0.0.1:6379> LRANGE mylist 0 10
1) "xiaojun"
2) "xiaoyi"
3) "xiaoer"
4) "xiaosi"
5) "xiaowu"
6) "xiaoliu"
7) "xiaoqi"
12、 LTRIM key start stop
对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
127.0.0.1:6379> LRANGE mylist 0 10
1) "xiaojun"
2) "xiaoyi"
3) "xiaoer"
4) "xiaosi"
5) "xiaowu"
6) "xiaoliu"
7) "xiaoqi"
127.0.0.1:6379> LTRIM mylist 3 5
OK
127.0.0.1:6379> LRANGE mylist 0 10
1) "xiaosi"
2) "xiaowu"
3) "xiaoliu"
保留下来的是 索引为3到索引为5之间的元素(从0开始的)
13、RPUSHX key value
为已存在的列表添加值
较多一个判断,用法跟RPUSH一样。