redis命令学习笔记(三):List

简介

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素) 。类似JAVA中的LinkedList。

赋值语法

(一)LPUSH key element [element …]

Redis Lpush 命令将一个或多个值插入到列表头部。 如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。 当 key 存在但不是列表类型时,返回一个错误。

Example

127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> lpush list1 cat dog fish
(integer) 3
127.0.0.1:6379> lrange list1 0 -1
1) "fish"
2) "dog"
3) "cat"

(二)RPUSH key element [element …]

Redis Rpush 命令用于将一个或多个值插入到列表的尾部(最右边)。
如果列表不存在,一个空列表会被创建并执行 RPUSH 操作。 当列表存在但不是列表类型时,返回一个错误。

Example

127.0.0.1:6379> rpush list2 a b c d e
(integer) 5
127.0.0.1:6379> lrange list2 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"

(三)LPUSHX key element [element …]

Redis Lpushx 将一个或多个值插入到已存在的列表头部,列表不存在时操作无效。

Example

127.0.0.1:6379> lpushx list2 a
(integer) 6
127.0.0.1:6379> lrange list2 0 -1
1) "a"
2) "a"
3) "b"
4) "c"
5) "d"
6) "e"
127.0.0.1:6379> lpushx list3 a
(integer) 0

(四)RPUSHX key element [element …]

Redis Lpushx 将一个或多个值插入到已存在的列表尾部,列表不存在时操作无效。

Example

127.0.0.1:6379> lrange list1 0 -1
1) "fish"
2) "dog"
3) "cat"
127.0.0.1:6379> rpushx list1 bird
(integer) 4
127.0.0.1:6379> lrange list1 0 -1
1) "fish"
2) "dog"
3) "cat"
4) "bird"

取值语法

(一)LLEN key

Redis Llen 命令用于返回列表的长度。 如果列表 key 不存在,则 key 被解释为一个空列表,返回 0 。 如果 key 不是列表类型,返回一个错误。

Example

127.0.0.1:6379> lrange list1 0 -1
1) "fish"
2) "dog"
3) "cat"
4) "bird"
127.0.0.1:6379> llen list1
(integer) 4

(二)LRANGE key start stop

Redis Lrange 返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

Example

127.0.0.1:6379> lpush list a b c d e
(integer) 5
127.0.0.1:6379> lrange list 0 -1
1) "e"
2) "d"
3) "c"
4) "b"
5) "a"
127.0.0.1:6379> lrange list -5 -1
1) "e"
2) "d"
3) "c"
4) "b"
5) "a"

(三)LINDEX key index

Redis Lindex 命令用于通过索引获取列表中的元素。你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

Example

127.0.0.1:6379> lrange list 0 -1
1) "e"
2) "d"
3) "c"
4) "b"
5) "a"
127.0.0.1:6379> lindex list 0
"e"
127.0.0.1:6379> lindex list 4
"a"
127.0.0.1:6379> lindex list 5
(nil)


删除语法

(一)LPOP key

Redis Lpop 命令用于移除并返回列表的第一个元素。

Example

127.0.0.1:6379> lrange list 0 -1
1) "e"
2) "d"
3) "c"
4) "b"
5) "a"
127.0.0.1:6379> lpop list
"e"
127.0.0.1:6379> lrange list 0 -1
1) "d"
2) "c"
3) "b"
4) "a"

(二)RPOP key

Redis Rpop 命令用于移除并返回列表的最后一个元素。

Example

127.0.0.1:6379> lrange list 0 -1
1) "d"
2) "c"
3) "b"
4) "a"
127.0.0.1:6379> rpop list
"a"
127.0.0.1:6379> lrange list 0 -1
1) "d"
2) "c"
3) "b"

(三)BLPOP key [key …] timeout

Redis Blpop 命令移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

Example

127.0.0.1:6379> lrange list 0 -1
1) "e"
2) "d"
3) "c"
4) "a"
5) "b"
127.0.0.1:6379> blpop list 5
1) "list"
2) "e"

(四)BRPOP key [key …] timeout

Redis Blpop 命令移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

Example

127.0.0.1:6379> lrange list 0 -1
1) "c"
2) "a"
3) "b"
127.0.0.1:6379> brpop list 5
1) "list"
2) "b"

(五)LTRIM key start stop

Redis Ltrim 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
下标 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

Example

127.0.0.1:6379> lrange list 0 -1
1) "f"
2) "e"
3) "d"
4) "c"
5) "b"
6) "c"
7) "a"
127.0.0.1:6379> ltrim list 1 6
OK
127.0.0.1:6379> lrange list 0 -1
1) "e"
2) "d"
3) "c"
4) "b"
5) "c"
6) "a"

修改语法

(一)LSET key index element

Redis Lset 通过索引来设置元素的值。
当索引参数超出范围,或对一个空列表进行 LSET 时,返回一个错误。

Example

127.0.0.1:6379> lrange list 0 -1
1) "e"
2) "d"
3) "c"
4) "b"
5) "c"
6) "a"
127.0.0.1:6379> lset list 0 newValue
OK
127.0.0.1:6379> lrange list 0 -1
1) "newValue"
2) "d"
3) "c"
4) "b"
5) "c"
6) "a"

(二)LINSERT key BEFORE|AFTER pivot element

Redis Linsert 命令用于在列表的元素前或者后插入元素。 当指定元素不存在于列表中时,不执行任何操作。 当列表不存在时,被视为空列表,不执行任何操作。 如果 key 不是列表类型,返回一个错误。

Example

127.0.0.1:6379> lrange list 0 -1
1) "newValue"
2) "d"
3) "c"
4) "b"
5) "c"
6) "a"
127.0.0.1:6379> linsert list before d hahaha
(integer) 7
127.0.0.1:6379> lrange list 0 -1
1) "newValue"
2) "hahaha"
3) "d"
4) "c"
5) "b"
6) "c"
7) "a"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值