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/]