redis命令之-list

本文深入解析Redis中的List命令,包括lpush、lrange、lpushx、llen、lrem、lset、ltrim、rpop、lpop、rpush、rpushx、linsert、lindex、brpop、blpop、rpoplpush、brpoplpush等,提供实际应用示例。
个人笔记:勿详看(详细在线文档http://redisdoc.com/list/index.html)

  1.    list命令
lpush 向list插入数据,每次都是插入最左边 ,可多个也可单个(每次插左边) LPUSH key value 
lrange 查看list的数据 LRANGE key 0 -1
lpushx 向list插入数据,每次都是插入最左边 ,可多个也可单个(前提:key必须存在)
lpushx key value
llen 查看key的长度 llen key
lrem 移除某些数据 lrem key 0 XXX
redis>LREM greet 2 morning     # 移除从表头到表尾,最先发现的两个 morning
redis> LREM greet -1 morning    # 移除从表尾到表头,第一个 morning
redis> LREM greet 0 hello      # 移除表中所有 hello
lset 重置某些数据 lset key n XXXX
redis> LSET job 0 "play game"
ltrim 删除了n1-n2之外的数据
ltrim key n1 n2
redis> LTRIM alpha 1 10086     # 保留 alpha 列表索引 1 至索引 10086 上的元素
rpop 移除并返回列表的尾元素 rpop key 
redis> RPOP mylist           # 返回被弹出的元素
"three"

redis> LRANGE mylist 0 -1    # 列表剩下的元素
1) "one"
2) "two"
lpop 移除并返回列表的头元素
lpop key 
rpush 向list插入数据,每次都是插入最左边 ,可多个也可单个(每次插右边)
rpush key value 
rpushx 向list插入数据,每次都是插入最右边 ,可多个也可单个(前提:key必须存在)
rpushx key value 
linsert

LINSERT key BEFORE|AFTER pivot value

将值 value 插入到列表 key 当中,位于值 pivot 之前或之后。

当 pivot 不存在于列表 key 时,不执行任何操作。

当 key 不存在时, key 被视为空列表,不执行任何操作。

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


127.0.0.1:6379> RPUSH mylist "Hello"
(integer) 1
127.0.0.1:6379> RPUSH mylist "World"
(integer) 2
127.0.0.1:6379> lrange mylist 0 -1
1) "Hello"
2) "World"
127.0.0.1:6379> LINSERT mylist BEFORE "World" "There"
(integer) 3
127.0.0.1:6379> lrange mylist 0 -1
1) "Hello"
2) "There"
3) "World"

lindex

LINDEX key index

返回列表 key 中,下标为 index 的元素。


127.0.0.1:6379> LINDEX mylist 0
"Hello"
127.0.0.1:6379> LINDEX mylist 1
"There"
127.0.0.1:6379> LINDEX mylist 2
"World"

BRPOP

BRPOP key [key ...] timeout

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

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

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

关于阻塞操作的更多信息,请查看 BLPOP 命令, BRPOP 除了弹出元素的位置和 BLPOP 不同之外,其他表现一致。


redis> LLEN course
(integer) 0

redis> RPUSH course algorithm001
(integer) 1

redis> RPUSH course c++101
(integer) 2

redis> BRPOP course 30
1) "course"             # 被弹出元素所属的列表键
2) "c++101"             # 被弹出的元素
BLPOP 从第一个不为空的list列表开始,弹出不为空的l列表的key的名称,移除并返回最左边的元素。 127.0.0.1:6379> LPUSH command "update system..."
(integer) 1
127.0.0.1:6379>  LPUSH request "visit page" 
(integer) 1
127.0.0.1:6379> BLPOP job command request 0 
1) "command"
2) "update system..."
127.0.0.1:6379> llen command
(integer) 0


RPOPLPUSH 比RPOP多了一个push的动作,移除并展示最右边的元素并且Lpush到新的列表 127.0.0.1:6379> RPOPLPUSH alpha reciver
"d"
127.0.0.1:6379> lrange alpha 0 -1
1) "a"
2) "b"
3) "c"
127.0.0.1:6379> lrange reciver 0 -1
1) "d"

BRPOPLPUSH 当给出的的list为空时会堵塞5秒 127.0.0.1:6379> BRPOPLPUSH emtpylist newlist 5
(nil)
(5.01s)





未完待续。。。。持续更新。。。。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29096438/viewspace-1792563/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29096438/viewspace-1792563/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值