006_Redis的List数据类型

1. List类型是一个链表结构的集合, 主要功能有push, pop, 获取元素等。List类型是一个双端链表的结构, 我们可以通过相关操作进行集合的头部或者尾部添加删除元素, List的设计非常简单精巧, 既可以做为栈, 又可以作为队列。List类型可以存放相同的值。

2. 将一个或多个值插入到列表头部

2.1. 语法: lpush key value1 [value2]。

2.2. lpush命令将一个或多个值插入到列表头部(栈的功能, 先进后出)。如果key不存在, 一个空列表会被创建并执行lpush操作。当key存在但不是列表类型时, 返回一个错误。

2.3. 返回执行lpush命令后, 列表的长度。

2.4. 实例

3. 将一个或多个值插入到列表尾部

3.1. 语法: rpush key value1 [value2]。

3.1. rpush命令用于将一个或多个值插入到列表的尾部(队列的功能, 先进先出)。如果列表不存在, 一个空列表会被创建并执行rpush操作。当列表存在但不是列表类型时, 返回一个错误。

3.1. 返回执行rpush操作后, 列表的长度。

3.1. 实例

4. 移出并获取列表的第一个元素

4.1. 语法: lpop key。

4.2. lpop命令移出列表的第一个元素(头部), 并返回元素。

4.3. 返回列表的第一个元素(移除的元素)。当列表key不存在时, 返回nil。

4.4. 实例

5. 移除并获取列表的最后一个元素

5.1. 语法: rpop key。

5.2. rpop命令用于移除列表的最后一个元素(尾部), 返回值为移除的元素。

5.3. 返回列表的最后一个元素(移除的元素)。当列表key不存在时, 返回nil。

5.4. 实例

6. 在列表的元素前或者后插入元素

6.1. 语法: linsert key before|after pivot value。

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

6.3. 如果命令执行成功, 返回插入操作完成之后, 列表的长度。如果没有找到指定元素, 返回-1。如果key不存在或为空列表, 返回0。

6.4. 实例

7. 获取列表长度

7.1. 语法: llen key。

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

7.3. 返回列表的长度。

7.4. 实例

8. 获取列表指定范围内的元素

8.1. 语法: lrange key start stop。

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

8.3. 返回一个列表, 包含指定区间内的元素。

8.4. 实例

9. 通过索引获取列表中的元素

9.1. 语法: lindex key index。

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

9.3. 返回列表中下标为指定索引值的元素。如果指定索引值不在列表的区间范围内, 返回nil。

9.4. 实例

10. 通过索引设置列表元素的值

10.1. 语法: lset key index value。

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

10.1. 返回操作成功返回ok, 否则返回错误信息。

10.1. 实例

11. 对一个列表进行修剪

11.1. 语法: ltrim key start stop。

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

11.3. 命令执行成功时, 返回ok。

11.4. 实例

12. 移除列表元素

12.1. 语法: lrem key count value。

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

count 的值可以是以下几种:

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

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

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

12.3. 返回被移除元素的数量。列表不存在时返回0。

12.4. 实例

13. 将一个值插入到已存在的列表头部

13.1. 语法: lpushx key value。

13.1. lpushx将一个值插入到已存在的列表头部, 列表不存在时操作无效。

13.1. 返回lpushx命令执行之后, 列表的长度。

13.1. 实例

14. 将一个值插入到已存在的列表尾部

14.1. 语法: rpushx key value。

14.1. rpushx命令用于将一个值插入到已存在的列表尾部。如果列表不存在, 操作无效。

14.1. 返回执行rpushx操作后, 列表的长度。

14.1. 实例

15. 移除列表的最后一个元素到另一个列表并返回元素

15.1. 语法: rpoplpush source destination。

15.2. rpoplpush命令用于移除列表的最后一个元素, 并将该元素添加到另一个列表并返回元素。

15.3. 返回被弹出的元素。

15.4. 实例

16. 移除并获取列表的第一个元素并设置超时时间

16.1. 语法: blpop key1 [key2] timeout。

16.1. blpop命令移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。超时时间以秒为单位。

16.1. 如果列表为空, 返回一个nil。否则, 返回一个含有两个元素的列表, 第一个元素是被弹出元素所属的key, 第二个元素是被弹出元素的值。

16.1. 实例

17. 移除并获取列表的最后一个元素并设置超时时间

17.1. 语法: brpop key1 [key2] timeout。

17.2. brpop命令移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。超时时间以秒为单位。

17.3. 假如在指定时间内没有任何元素被弹出, 则返回一个nil和等待时长。反之, 返回一个含有两个元素的列表, 第一个元素是被弹出元素所属的key, 第二个元素是被弹出元素的值。

17.4. 实例

18. 从列表中取出最后一个元素并插入到另外一个列表的头部并设置超时时间

18.1. 语法: brpoplpush source destination timeout。

18.2. brpoplpush命令从列表中取出最后一个元素, 并插入到另外一个列表的头部; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。超时时间以秒为单位。

18.3. 假如在指定时间内没有任何元素被弹出, 则返回一个nil和等待时长。反之, 返回被弹出的元素值。

18.4. 实例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值