设为首页 加入收藏

TOP

小贝_redislist类型学习(一)
2015-11-21 01:41:17 来源: 作者: 【 】 浏览:7
Tags:小贝 _redislist 类型 学习

redis list类型

一、查看list类型的命令

二、list命令详解

?

?

一、查看list类型的命令

1、在终端数据 help @list

127.0.0.1:6379>help @list

BLPOP key [key ...] timeout

summary: Remove and get the first element ina list, or block until one is ava

ilable

since: 2.0.0

?

BRPOP key [key ...] timeout

summary: Remove and get the last element in alist, or block until one is avai

lable

since: 2.0.0

?

BRPOPLPUSH source destination timeout

summary: Pop a value from a list, push it toanother list and return it; or bl

ockuntil one is available

since: 2.2.0

?

LINDEX key index

summary: Get an element from a list by itsindex

since: 1.0.0

……

?

?

?

?

?

二、list命令详解

头元素和尾元素

头元素指的是列表左端/前端第一个元素,尾元素指的是列表右端/后端第一个元素。

举个例子,列表list包含三个元素:x, y, z,其中x是头元素,而z则是尾元素。

空列表

指不包含任何元素的列表,Redis将不存在的key也视为空列表。

?

1、lpush

lpush key value [value ...]

将值value插入到列表key的表头。

如果key不存在,一个空列表会被创建并执行lpush操作。

当key存在但不是列表类型时,返回一个错误。

时间复杂度:

O(1)

返回值:

执行lpush命令后,表的长度。

Note

在Redis 2.3版本以前的lpush命令,都只接受单个value值。

127.0.0.1:6379>lpush word d

(integer)1

127.0.0.1:6379>lpush word a

(integer)2

127.0.0.1:6379>lpush word b

(integer)3

127.0.0.1:6379>lrange word 0 -1 # 显示列表内所有元素

1)"b"

2)"a"

3)"d"

?

2、lpushx

lpushx key value

将值value插入到列表key的表头,当且仅当key存在并且是一个列表。

和lpush命令相反,当key不存在时,lpushx命令什么也不做。

时间复杂度:

O(1)

返回值:

lpushx命令执行之后,表的长度。

#情况1:对空列表执行lpushx

127.0.0.1:6379>llen greet # greet是一个空列表

(integer)0

127.0.0.1:6379>lpushx greet "hello" # 尝试lpushx,失败,因为列表为空

(integer)0

#情况2:对非空列表执行lpushx

127.0.0.1:6379>lpush greet "hello" # 先用lpush创建一个有一个元素的列表

(integer)1

127.0.0.1:6379>lpushx greet "good morning" #这次lpushx执行成功

(integer)2

127.0.0.1:6379>lrange greet 0 -1

1)"good morning"

2)"hello"

?

3、rpush

rpush key value [value ...]

将值value插入到列表key的表尾。

如果key不存在,一个空列表会被创建并执行rpush操作。

当key存在但不是列表类型时,返回一个错误。

时间复杂度:

O(1)

返回值:

执行rpush操作后,表的长度。

Note

在Redis 2.3版本以前的rpush命令,都只接受单个value值。

127.0.0.1:6379>llen fp-language # 显示列表中的元素数量

(integer)0

127.0.0.1:6379>rpush fp-language lisp

(integer)1

127.0.0.1:6379>lrange fp-language 0 0 # 显示列表中的元素

1)"lisp"

127.0.0.1:6379>rpush fp-language scheme

(integer)2

127.0.0.1:6379>lrange fp-language 0 1 # 显示列表中的元素

1)"lisp"

2)"scheme"

?

4、rpushx

rpushx key value

将值value插入到列表key的表尾,当且仅当key存在并且是一个列表。

和rpush命令相反,当key不存在时,rpushx命令什么也不做。

时间复杂度:

O(1)

返回值:

rpushx命令执行之后,表的长度。

#情况1:key不存在

127.0.0.1:6379>llen greet

(integer)0

127.0.0.1:6379>rpushx greet "hello" # 对不存在的key进行rpushx,PUSH失败。

(integer)0

#情况2:key存在且是一个非空列表

127.0.0.1:6379>rpush greet "hi" # 先用rpush插入一个元素

(integer)1

127.0.0.1:6379>rpushx greet "hello" # greet现在是一个列表类型,rpushx操作成功。

(integer)2

127.0.0.1:6379>lrange greet 0 -1

1)"hi"

2)"hello"

?

5、lpop

lpop key

移除并返回列表key的头元素。

时间复杂度:

O(1)

返回值:

列表的头元素。

当key不存在时,返回nil。

127.0.0.1:6379>llen course

(integer)0

127.0.0.1:6379>rpush course algorithm001

(integer)1

127.0.0.1:6379>rpush course c++101

(integer)2

127.0.0.1:6379>LPOP course # 移除头元素

"algorithm001"

?

6、rpop

rpop key

移除并返回列表key的尾元素。

时间复杂度:

O(1)

返回值:

列表的尾元素。

当key不存在时,返回nil。

127.0.0.1:6379>rpush mylist "one"

(integer)1

127.0.0.1:6379>rpush mylist "two"

(integer)2

127.0.0.1:6379>rpush mylist "three"

(integer)3

127.0.0.1:6379>rpop mylist # 返回被弹出的元素

"three"

127.0.0.1:6379>lrange mylist 0 -1 # 列表剩下的元素

1)"one"

2)"two"

?

7、rlpop

rlpopkey [key ...] timeout

rlpop是列表的阻塞式(blocking)弹出原语。

它是LPOP命

首页 上一页 1 2 3 4 5 下一页 尾页 1/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇数据库资源消耗高时两条简单管用.. 下一篇centos6.5下postgres-XC集群安装..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: