Redis列表是简单的字符串列表,排序插入顺序。您可以在头部或列表的尾部Redis的列表添加元素。
列表的最大长度为232 - 1 (每个列表超过4十亿元素4294967295)元素。
首先,插入数据到列表当中:
> lpush my_list1 zhibin
(integer) 1
> lpush my_list1 biki
(integer) 2
> rpush my_list1 good
(integer) 3
#查询队列的长度
> llen my_list1
(integer) 3
插入列表,可以使用lpush和rpush命令,left可以视为表头,right可以视为表尾。
获取列表中的数据:
#按范围取数据
> lrange my_list1 0 4
1) "biki"
2) "zhibin"
3) "good"
#从列表的左面弹出一个元素
> lpop my_list1
"biki"
如下表所示相关列出了一些基本的命令:
S.N. | 命令 & 描述 |
---|---|
1 | BLPOP key1 [key2 ] timeout 取出并获取列表中的第一个元素,或阻塞,直到有可用 |
2 | BRPOP key1 [key2 ] timeout 取出并获取列表中的最后一个元素,或阻塞,直到有可用 |
3 | BRPOPLPUSH source destination timeout 从列表中弹出一个值,它推到另一个列表并返回它;或阻塞,直到有可用 |
4 | LINDEX key index 从一个列表其索引获取对应的元素 |
5 | LINSERT key BEFORE|AFTER pivot value 在列表中的其他元素之后或之前插入一个元素 |
6 | LLEN key 获取列表的长度 |
7 | LPOP key 获取并取出列表中的第一个元素 |
8 | LPUSH key value1 [value2] 在前面加上一个或多个值的列表 |
9 | LPUSHX key value 在前面加上一个值列表,仅当列表中存在 |
10 | LRANGE key start stop 从一个列表获取各种元素 |
11 | LREM key count value 从列表中删除元素 |
12 | LSET key index value 在列表中的索引设置一个元素的值 |
13 | LTRIM key start stop 修剪列表到指定的范围内 |
14 | RPOP key 取出并获取列表中的最后一个元素 |
15 | RPOPLPUSH source destination 删除最后一个元素的列表,将其附加到另一个列表并返回它 |
16 | RPUSH key value1 [value2] 添加一个或多个值到列表 |
17 | RPUSHX key value 添加一个值列表,仅当列表中存在 |
参考连接:(http://www.yiibai.com/redis/redis_lists.html)
可以利用list类型实现的功能:
1.实现先进先出队列(FIFO)以及栈(LIFO)
队列在web应用的范围非常广,比如日志推送、任务处理等等,以往使用httpsqs实现队列,其实,使用redis的list类型,也可以实现队列。
> lpush list a
(integer) 1
> lpush list b
(integer) 2
> lpush list c
(integer) 3
#接下来,使用rpop取出队列
> rpop list
"a"
#思考一下,如果我们使用lpop会出现什么情况呢?
> lpop list
"c"
#结果是最后一个入列的元素"c"出列了,这不就是一个栈的结构么?