redis之列表类型(list)——队列和栈简单实现

来源:互联网 发布:海尔网络电视机顶盒 编辑:程序博客网 时间:2024/04/29 22:14
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 41) "biki"2) "zhibin"3) "good"#从列表的左面弹出一个元素> lpop my_list1"biki"

如下表所示相关列出了一些基本的命令:

S.N.命令 & 描述1BLPOP key1 [key2 ] timeout 
取出并获取列表中的第一个元素,或阻塞,直到有可用2BRPOP key1 [key2 ] timeout 
取出并获取列表中的最后一个元素,或阻塞,直到有可用3BRPOPLPUSH source destination timeout 
从列表中弹出一个值,它推到另一个列表并返回它;或阻塞,直到有可用4LINDEX key index 
从一个列表其索引获取对应的元素5LINSERT key BEFORE|AFTER pivot value 
在列表中的其他元素之后或之前插入一个元素6LLEN key 
获取列表的长度7LPOP key 
获取并取出列表中的第一个元素8LPUSH key value1 [value2] 
在前面加上一个或多个值的列表9LPUSHX key value 
在前面加上一个值列表,仅当列表中存在10LRANGE key start stop 
从一个列表获取各种元素11LREM key count value 
从列表中删除元素12LSET key index value 
在列表中的索引设置一个元素的值13LTRIM key start stop 
修剪列表到指定的范围内14RPOP key 
取出并获取列表中的最后一个元素15RPOPLPUSH source destination 
删除最后一个元素的列表,将其附加到另一个列表并返回它16RPUSH key value1 [value2] 
添加一个或多个值到列表17RPUSHX 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"出列了,这不就是一个栈的结构么?


0 0
原创粉丝点击