redis之列表类型(list)——队列和栈简单实现
2015-12-21 13:05
906 查看
Redis列表是简单的字符串列表,排序插入顺序。您可以在头部或列表的尾部Redis的列表添加元素。
列表的最大长度为232 - 1 (每个列表超过4十亿元素4294967295)元素。
首先,插入数据到列表当中:
获取列表中的数据:
如下表所示相关列出了一些基本的命令:
参考连接:(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"出列了,这不就是一个栈的结构么?
列表的最大长度为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 添加一个值列表,仅当列表中存在 |
可以利用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"出列了,这不就是一个栈的结构么?
相关文章推荐
- Redis学习笔记(一) Redis安装与基本使用(windows)
- 红帽redis安装和介绍
- Redis入门之 redis set集合的操作
- redis之哈希类型(hash)
- Redis 入门之 redis 列表操作
- redis 简单应用
- Windows下Redis的安装使用
- Redis3.0.5配置文件详解
- Redis3.0.5配置文件详解
- redis相关命令
- redis详解
- spring 使用redis集群配置
- redis(Remote Dictionary Server)
- redis的简介和使用
- Redis线程池及分布式
- 【erlang 使用】eredis 介绍
- redis研究与探索(一)-安装部署
- 大规模互联网应用Redis架构要点(转)
- 安装redis
- 如何搭建redis扩展-Yii中文网