您的位置:首页 > 数据库 > Redis

Redis List操作

2015-10-19 13:30 288 查看
Redis List操作

1、LLEN key

返回列表
key
的长度。

如果
key
不存在,则
key
被解释为一个空列表,返回
0
.

如果
key
不是列表类型,返回一个错误。



2、MULTI

标记一个事务块的开始。

事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令原子性(atomic)地执行。



3、SRANDMEMBER key [count]

如果命令执行时,只提供了
key
参数,那么返回集合中的一个随机元素。

从 Redis 2.6 版本开始, SRANDMEMBER 命令接受可选的
count
参数:

如果
count
为正数,且小于集合基数,那么命令返回一个包含
count
个元素的数组,数组中的元素各不相同。如果
count
大于等于集合基数,那么返回整个集合。

如果
count
为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为
count
的绝对值。

该操作和 SPOP 相似,但 SPOP 将随机元素从集合中移除并返回,而 SRANDMEMBER 则仅仅返回随机元素,而不对集合进行任何改动。

4、 BLPOP key [key ...] timeout

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

它是 LPOP 命令的阻塞版本,当给定列表内没有任何元素可供弹出的时候,连接将被 BLPOP 命令阻塞,直到等待超时或发现可弹出元素为止。

当给定多个
key
参数时,按参数
key
的先后顺序依次检查各个列表,弹出第一个非空列表的头元素。

非阻塞行为

BLPOP 被调用时,如果给定
key
内至少有一个非空列表,那么弹出遇到的第一个非空列表的头元素,并和被弹出元素所属的列表的名字一起,组成结果返回给调用者。

当存在多个给定
key
时, BLPOP 按给定
key
参数排列的先后顺序,依次检查各个列表。

假设现在有
job
command
request
三个列表,其中
job
不存在,
command
request
都持有非空列表。考虑以下命令:

BLPOP job command request 0


BLPOP 保证返回的元素来自
command
,因为它是按”查找
job
-> 查找
command
-> 查找
request
“这样的顺序,第一个找到的非空列表。



5、RPOPLPUSH source destination

命令 RPOPLPUSH 在一个原子时间内,执行以下两个动作:

将列表
source
中的最后一个元素(尾元素)弹出,并返回给客户端。

source
弹出的元素插入到列表
destination
,作为
destination
列表的的头元素。

举个例子,你有两个列表
source
destination
source
列表有元素
a, b, c
destination
列表有元素
x, y, z
,执行
RPOPLPUSHsource destination
之后,
source
列表包含元素
a, b
destination
列表包含元素
c, x, y, z
,并且元素
c
会被返回给客户端。

如果
source
不存在,值
nil
被返回,并且不执行其他动作。

如果
source
destination
相同,则列表中的表尾元素被移动到表头,并返回该元素,可以把这种特殊情况视作列表的旋转(rotation)操作。

6、LREM key count value

根据参数
count
的值,移除列表中与参数
value
相等的元素。

count
的值可以是以下几种:

count > 0
: 从表头开始向表尾搜索,移除与
value
相等的元素,数量为
count


count < 0
: 从表尾开始向表头搜索,移除与
value
相等的元素,数量为
count
的绝对值。

count = 0
: 移除表中所有与
value
相等的值。

参考:http://redisdoc.com/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: