redis数据类型二之list的操作命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis数据类型二之list的操作命令相关的知识,希望对你有一定的参考价值。

1、字符串链表 list 的特点

        首先在redis官网上找到这个:

    

技术分享

        如图示,redis lists就是一个有序元素组成的的序列,是由Linked Lists实现的。这意味这你在一个10个元素的 list 的头部或者尾部插入新的元素,和在一个有一百万个元素的list的头部或尾部中插入元素所耗费的时间是一样一样的。


        性能总结:

        a、如果插入的键不存在,则默认创建一个list;如果插入的键存在,则新增元素。

        b、如果插入的内容全部被移除,则对应的键消失。

        c、链表的操作如是是对于头部或者尾部,效率极高;如果对中间进行操作,效率就很惨淡。


2、常用的操作命令:


        a、lpush/rpush/lrange: 将一个或者多个元素插入到列表头部/将一个或者多个元素追加到这列表中/取出列表给定范围的元素

 

技术分享

         

        可以看到,lpush 指令 和 rpush 指令在库中没有指定list时,为添加list操作。( lpush 为list 头部添加元素,类似 Java 堆栈中的后进先出。)lrange 指令后两个之为索引,如果 指令为 lrange list01 0 -1,则取出整个 list 中的元素。


技术分享


        图示为 lpush 指令在头部插入两个元素,先插入的在后,后插入的在前。


        b、lpop/rpop: 移除 list 列表中的头一个/最后一个元素

        

技术分享


        c、llen: 获取 list 的长度

    

技术分享


        d、lrem key 删 N 个value: 删除指定 list 的指定字符串的指定个数


技术分享


        e、ltrim key 开始index 结束index: 截取指定范围内的值再赋值给 key


技术分享


        f、rpoplpush 源列表 目标列表: 将源列表的最后一个移动到目标列表的头一个


技术分享


        g、lset key index value: 替换 list 中指定索引位置的字符串


技术分享


        h、llinsert key before/after 值1 值2: 在 list 列表中指定 字符串1 前/后插入 字符串2


技术分享

本文出自 “12392717” 博客,请务必保留此出处http://12402717.blog.51cto.com/12392717/1923709

以上是关于redis数据类型二之list的操作命令的主要内容,如果未能解决你的问题,请参考以下文章

redis的数据类型List,其原生命令和php操作Redis List函数介绍

redis数据类型与key操作命令

《闲扯Redis三》Redis五种数据类型之List型

Redis的数据类型及相关操作命令

5redis原生的命令操作不同数据类型

大数据之Redis:Redis数据类型Set及相关的命令行操作