Redis初识~List命令

List命令

Redis的列表允许用户从序列的两端推入元素或者弹出元素。可以来创建常见的队列信息。

List常用命令

  1. blpop: 列表阻塞式弹出。当在查询如果指定得key 都是空列表那么会一直等待。如果存在得key中有值那么会取出值来。不建议放在事务中MULTI/EXEC中。时间复杂度为O(1)。模式:事件提醒。为了等待一个元素得到达列表中会采用轮询得方式来进行探查。另一种好得方式是使用阻塞原语。在新元素没有到达得时候阻塞住,避免轮询占用资源。blpop key key key timeout
  2. brpop: 同上,阻塞惭怍。
  3. brpoplpush: 阻塞版本。从一个列表中取出元素,然后放入到目标列表中。 brpoplpush source destination timeout. 超时参数timeout接收一个秒为单位得数字作为值。 设为0表示无限期延长。 时间复杂度为O(1).
  4. lindex: 返回劣种key中 下表为index得元素。 0代表第一个元素 ,-1代表 最后一个元素。时间复杂度O(N) .n为下标index 过程中经过得元素数量。第一个元素和最后一个元素 时间复杂度是O(1);
  5. linsert: linsert key before | after pivot value 将值value 插入到列表key中。位于值pivot之前和之后。 pivot 不存在得时候不执行操作。key 不存在 也不执行操作。linsert key before pivot value
  6. llen:返回列表key得长度,key不存在 返回0 .不是列表类型返回一个错误 llen key。时间复杂度O(1);
  7. lpop: 移除并返回列表key中得头元素。 时间复杂度为O(1); key不存在得时返回nil。
  8. lpush: 将一个value 或者多个value插入到列表中。 如果key不存在 一个空列表会被创建并执行lpush操作。时间复杂度是O(1); lpush key value
  9. lrange:取回列表中区间内得元素。区间以偏移量start 和stop 指定。但是这个操作不会移除选择得元素。时间复杂度O(S+N) S是偏移量start N为指定区间内得元素得数量。 lrange key start stop
  10. lrem: 根据参数count得值 移除列表中与参数value相等得元素。count 可以是0 大于0 或者小于0 。0代表移除表中得与value相等得所有元素。 大于0 代表从表头开始索索。移除与value相等得值 数量为count.小于0 同理。从表尾开始搜索。
  11. lset: 将列表key 下表为index得元素设置为value. 当index 超出范围 或者key 不存在 时返回一个错误。时间复杂度:O(N)。N为列表的长度。
  12. ltrim:对一个列表进行修剪,只保留区间内的元素。当选择的key不是一个列表类型的时候。返回一个错误类型。ltrim key start stop 双闭。 时间复杂是O(N),N为被移除的元素的数量。
  13. rpop:移除并返回列表key的尾元素 时间复杂度是O(1);key不存在的时 ,返回nil.
  14. rpoplpush:rpoplpush soruce destionation .同brpoplpush .
  15. rpush:将一个或多个值 value 插入到列表 key 的表尾. rpush key value value
  16. rpushx:将值 value 插入到列表 key 的表尾,当且仅当 key 存在并且是一个列表。

原文发布于微信公众号 - LuckQI(YoungRUIQ)

原文发表时间:2018-03-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ShaoYL

深刻理解----修饰变量----关键字

34911
来自专栏玄魂工作室

《改善C程序代码的125个建议》-防止整数类型产生回绕与溢出

以下内容摘抄自《改善C程序代码的125个建议》: 建议2:防止整数类型产生回绕与溢出 到C99为止,C语言为我们提供了12个相关的数据类型关键字来表达各种数据...

2927
来自专栏marsggbo

python的with语句,超级强大

With语句是什么? 有一些任务,可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常方便的处理方式。一个很好的例子是文...

20510
来自专栏MasiMaro 的技术博文

C函数原理

C语言作为面向过程的语言,函数是其中最重要的部分,同时函数也是C种的一个难点,这篇文章希望通过汇编的方式说明函数的实现原理。

1103
来自专栏技术博客

C#项目代码规范

   小菜就是小菜,几个人搞出来的项目,让公司大牛稍微看了下,最后送出了惨不忍睹四个字。命名各种各样,五花八门,大写英文、小写英文、大写拼音、小写拼音、英文和拼...

1234
来自专栏Java成神之路

PHP中 对象自动调用的方法:__set()、__get()、__tostring()

 (1)__get($property_name):获取私有属性$name值时,此对象会自动调用该方法,将属性name值传给参数$property_name,通...

964
来自专栏IT可乐

Redis详解(五)------ redis的五大数据类型实现原理

  前面两篇博客,第一篇介绍了五大数据类型的基本用法,第二篇介绍了Redis底层的六种数据结构。在Redis中,并没有直接使用这些数据结构来实现键值对数据库,而...

1100
来自专栏有趣的django

python面试题(持续更新)

第1~10题 1、一行代码实现1--100之和 >>> sum(range(1,101)) 5050 >>> 2、如何在一个函数内部修改全局变量 a= 3 ...

41811
来自专栏从零开始学自动化测试

python笔记22-literal_eval函数处理返回json中的单双引号

在做接口测试的时候,最常见的接口返回数据就是json类型,json类型数据实际上就是字串,通常标准的json格式是可以转化成python里面的对应的数据类型的 ...

1581
来自专栏zingpLiu

面向对象(三)【类的特殊成员及高级特性】

前面两篇文章介绍了类与对象的基本概念和类中的一些成员,本篇主要介绍类和对象的特殊成员及一些高级特性。

893

扫码关注云+社区