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 条评论
登录 后参与评论

相关文章

来自专栏零基础使用Django2.0.1打造在线教育网站

关于JAVA你必须知道的那些事(二):封装

时隔近一年,我突然想起来这个文章还没有发完,所以就继续开始写。也不知道自己上次写到哪里了,不管了这里从面向对象的三个特性说起。

8810
来自专栏MasiMaro 的技术博文

C函数原理

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

14530
来自专栏黑泽君的专栏

字符串的案例代码

字符串的案例   A:模拟用户登录   B:字符串的遍历   C:统计字符串中大写、小写及数字字符的个数   D:把字符串的首字母转成大写,其他...

10700
来自专栏青玉伏案

Java编程之委托代理回调、内部类以及匿名内部类回调(闭包回调)

最近一直在看Java的相关东西,因为我们在iOS开发是,无论是Objective-C还是Swift中,经常会用到委托代理回调,以及Block回调或者说是闭包回调...

22790
来自专栏技术博客

C#项目代码规范

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

35940
来自专栏从零开始学 Web 前端

04 - JavaSE之异常处理

2.throw new someExpresion("错误原因"); 表示的是手动抛出异常。 **

14640
来自专栏Java成神之路

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

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

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

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

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

22110
来自专栏IT可乐

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

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

16900
来自专栏博客园

.NET面试题解析(05)-常量、字段、属性、特性与委托

上面一段非常简单代码,其生产的IL代码如下,在使用常量变量的地方,把她的值拷过来了(把常量的值内联到使用的地方),与常量变量A.PORT没有关系了。假如A引用了...

11310

扫码关注云+社区

领取腾讯云代金券