1. 在总结list之前,先要弄明白几个跟list相关的概念:

        列表:一个从左到右的队列,个人理解更类似于一个栈,常规模式下,先进列表的元素,后出。

        表头元素:列表最左端第一个元素。

        表尾元素:列表最右端的最后一个元素。不包含任何元素的列表成为空列表。

        1)新增

        a)lpush

        语法:lpush key value[value]

        解释:把一个或多个元素插入表头。如果是多个value时,按照从左到右的次序插。返回插入元素的个数

        1. [root@xsf001 ~]# redis-cli
        2. redis 127.0.0.1:6379> lpush lst.user zhangsan   #插入一个元素
        3. (integer) 1
        4. redis 127.0.0.1:6379> lpush lst.user zhangsan lisi   #插入多个元素,list中允许插入重复的元素
        5. (integer) 3

        b)lpushx

        语法:lpushx key value

        解释:插入一个表头元素,当且仅当列表key存在时,才能插入。返回列表中元素的个数

        1. redis 127.0.0.1:6379> lpushx lst.user wangwu   #列表存在
        2. (integer) 4
        3. redis 127.0.0.1:6379> lpushx lst.tech wangwu   #列表不存在,不插入
        4. (integer) 0

        c)rpush

        语法:rpush key [value]

        解释:将一个或多个值插入到队列的队尾。多值时,从左到右依次添加。返回列表中元素个数

        1. redis 127.0.0.1:6379> rpush lst.user ls005     #列表存在
        2. (integer) 5
        3. redis 127.0.0.1:6379> rpush lst.tech tec01 tec02 tec03  #列表不存在
        4. (integer) 3

        d) rpushx

        语法:rpushx key value

        解释:讲值插入到列表队尾,当且仅当列表key存在时,才添加。返回列表元素个数

        1. redis 127.0.0.1:6379> rpushx lst.tech tec04  #key 存在
        2. (integer) 4
        3. redis 127.0.0.1:6379> rpushx lst.sub englist #key 不存在
        4. (integer) 0

        e)linsert

        语法:linsert key before|after pivot value

        解释:将值插入到pivot的前面或后面。返回列表元素个数。如果参照点pivot不存在不插入。如果有多个pivot,以离表头最近的为准

        1. redis 127.0.0.1:6379> linsert lst.tech after tec04 tec06  #后面插
        2. (integer) 5
        3. redis 127.0.0.1:6379> linsert lst.tech before tec06 tec05 #前面插
        4. (integer) 6
        5. redis 127.0.0.1:6379> linsert lst.tech before tec08 tec07 #参照点不存在,不插
        6. (integer) -1
        7. redis 127.0.0.1:6379> linsert lst.user after zhangsan zhangsan01  #列表中有多个pivot,以从左到右的第一个为准
        8. (integer) 6

        2)查询

        a)lindex

        语法:lindex key index

        解释:通过索引index获取列表的元素。 index>=0时, 0 表头,1 第二个元素,依次类推;index<0时,-1,表尾,-2倒数第二个元素,依次类推

        1. redis 127.0.0.1:6379> lindex lst.user 0  #表头
        2. "wangwu"
        3. redis 127.0.0.1:6379> lindex lst.user -1 #表尾
        4. "ls005"
        5. redis 127.0.0.1:6379> lindex lst.user 2 #第三个元素
        6. "zhangsan"
        7. redis 127.0.0.1:6379> lindex lst.user -2 #倒数第二个元素
        8. "zhangsan"

        b)lrange

        语法:lrange key start stop

        解释:获取指定开始和结束范围的一些列元素。0:表头,-1:表尾。如果stop指定的元素在start的左边,返回空列表

        1. redis 127.0.0.1:6379> lrange lst.user 0 -1 #返回所有
        2. 1) "wangwu"
        3. 2) "lisi"
        4. 3) "zhangsan"
        5. 4) "zhangsan01"
        6. 5) "zhangsan"
        7. 6) "ls005"
        8. redis 127.0.0.1:6379> lrange lst.user -1 0  #返回空
        9. (empty list or set)
        10. redis 127.0.0.1:6379> lrange lst.user 1 2  #返回多个
        11. 1) "lisi"
        12. 2) "zhangsan"
        13. redis 127.0.0.1:6379> lrange lst.user 1 1   #返回一个元素
        14. 1) "lisi"

        3)修改

        lset

        语法:lset key index value

        解释:设置列表指定索引的值,如果指定索引不存在则报错

        1. redis 127.0.0.1:6379> lset lst.user 2 zhangsan1  #设置第三个元素为zhangsan1
        2. OK
        3. redis 127.0.0.1:6379> lrange lst.user 0 -1
        4. 1) "wangwu"
        5. 2) "lisi"
        6. 3) "zhangsan1"
        7. 4) "zhangsan01"
        8. 5) "zhangsan"
        9. 6) "ls005"
        10. redis 127.0.0.1:6379> lset lst.user 6 ls006  #指定索引不存在
        11. (error) ERR index out of range

        4)删除

        a)ltrim

        语法:ltrim key start stop

        解释:保留指定区域的元素,其他元素全部删除

        1. redis 127.0.0.1:6379> ltrim lst.user 0 -2
        2. OK
        3. redis 127.0.0.1:6379> lrange lst.user 0 -1
        4. 1) "wangwu"
        5. 2) "lisi"
        6. 3) "zhangsan1"
        7. 4) "zhangsan01"
        8. 5) "zhangsan"

        b)lrem

        语法:lrem key count value

        解释:移除等于value的元素,当count>0时,从表头开始查找,移除count个;当count=0时,从表头开始查找,移除所有等于value的;当count<0时,从表尾开始查找,移除|count| 个。

        1. redis 127.0.0.1:6379> lrange lst.user 0 -1
        2. 1) "zhangsan"
        3. 2) "wangwu"
        4. 3) "lisi"
        5. 4) "zhangsan1"
        6. 5) "zhangsan01"
        7. 6) "zhangsan"
        8. 7) "lisi"
        9. 8) "zhangsan"
        10. 9) "lisi"
        11. 10) "zhangsan"
        12. redis 127.0.0.1:6379> lrem lst.user 2 zhangsan #移除前两个zhangsan
        13. (integer) 2
        14. redis 127.0.0.1:6379> lrange lst.user 0 -1
        15. 1) "wangwu"
        16. 2) "lisi"
        17. 3) "zhangsan1"
        18. 4) "zhangsan01"
        19. 5) "lisi"
        20. 6) "zhangsan"
        21. 7) "lisi"
        22. 8) "zhangsan"
        23. redis 127.0.0.1:6379> lrange lst.user -1 zhangsan #移除最后一个zhangsan
        24. (empty list or set)
        25. redis 127.0.0.1:6379> lrange lst.user 0 -1
        26. 1) "wangwu"
        27. 2) "lisi"
        28. 3) "zhangsan1"
        29. 4) "zhangsan01"
        30. 5) "lisi"
        31. 6) "zhangsan"
        32. 7) "lisi"
        33. redis 127.0.0.1:6379> lrem lst.user 0 lisi  #移除所有lisi
        34. (integer) 3
        35. redis 127.0.0.1:6379> lrange lst.user 0 -1
        36. 1) "wangwu"
        37. 2) "zhangsan1"
        38. 3) "zhangsan01"
        39. 4) "zhangsan"
        40. redis 127.0.0.1:6379>

        c)rpop

        语法:rpop key

        解释:移除并返回表尾元素

        1. redis 127.0.0.1:6379> rpop lst.user
        2. "zhangsan"

        d)lpop

        语法:lpop key

        解释:移除并返回表尾元素

        1. redis 127.0.0.1:6379> lpop lst.user
        2. "wangwu"

        5)其他

        a)llen

        语法:llen key

        解释:获取列表长度

        1. redis 127.0.0.1:6379> llen lst.user
        2. (integer) 2

        参考:http://redis.io/commands#list

Redis系列-存储篇list主要操作函数小结的更多相关文章

  1. Redis系列-存储篇string主要操作函数小结

    通过上两篇的介绍,我们的redis服务器基本跑起来.db都具有最基本的CRUD功能,我们沿着这个脉络,开始学习redis丰富的数据结构之旅,当然先从最简单且常用的string开始. 1.新增 a)se ...

  2. Redis系列-存储篇set主要操作函数小结

    最近,总是以“太忙“为借口,很久没有blog了,凡事贵在恒,希望我能够坚持不懈,毕竟在blog的时候,也能提升自己.废话不说了,直奔主题”set“ redis set 是string类型对象的无序集合 ...

  3. Redis系列-存储篇hash主要操作函数小结

    阳光透过玻璃,洒在身上,一杯暖茶在手,说不尽的安逸自得,让我有种想再写篇blog的冲动.上篇主要谈了string,这里谈谈hash吧!hash是一些列key value(field value)的映射 ...

  4. Redis系列-存储篇list主要操作函数小结(转)

    在总结list之前,先要弄明白几个跟list相关的概念: 列表:一个从左到右的队列,个人理解更类似于一个栈,常规模式下,先进列表的元素,后出. 表头元素:列表最左端第一个元素. 表尾元素:列表最右端的 ...

  5. Redis系列-存储篇sorted set主要操作命令

    Redis系列-存储篇sorted set主要操作函数小结 redis支持有序集合,即sorted set.sorted set在set的基础上,增加了排序属性,是set的升级版.这里简要谈谈sort ...

  6. Redis系列-存储篇string主要操作命令

    Redis系列-存储篇string主要操作命令 通过上两篇的介绍,我们的redis服务器基本跑起来.db都具有最基本的CRUD功能,我们沿着这个脉络,开始学习redis丰富的数据结构之旅,当然先从最简 ...

  7. Redis系列-存储篇list主要操作命令

    Redis系列-存储篇list主要操作命令小结 在总结list之前,先要弄明白几个跟list相关的概念: 列表:一个从左到右的队列,个人理解更类似于一个栈,常规模式下,先进列表的元素,后出. 表头元素 ...

  8. Redis系列-存储篇sorted set主要操作函数小结

    redis支持有序集合,即sorted set.sorted set在set的基础上,增加了排序属性,是set的升级版.这里简要谈谈sorted set的常用函数: 1)insert a)  zadd ...

  9. Redis系列-存储hash主要操作命令

    Redis系列-存储篇hash主要操作函数小结 hash是一些列key value(field value)的映射表.常常用其存储一些对象实例.相对于把一个对象的各个字段存储为string,存储为ha ...

随机推荐

  1. CnPlugin 1.5.400

    本软件CnPlugin是PL/SQL Developer工具插件,支持PL/SQL Developer 7.0以上版本.增加了PL/SQL Developer工具本身所没有的一些小功能,功能基本一些已 ...

  2. IIS Express简介

    当前程序员只能通过下面两种Web服务器之一来开发和测试ASP.NET网站程序: 1. Visual Studio自带的ASP.NET开发服务器(webdev.exe). 2. Windows自带的II ...

  3. Android GestureDetector方法详解

    为了加强点击.拖动响应事件,Android提供了GestureDetector手势识别类.通过GestureDetector.OnGestureListener来获取当前被触发的操作手势(Single ...

  4. 检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统

    /** * Author: laixiangran. * Created by laixiangran on 2015/12/02. * 检测访问网页的浏览器呈现引擎.平台.Windows操作系统.移 ...

  5. C++ Primer 笔记(1)基础中的战斗机 输入输出 对输入不定数据处理

    今天打算再重新好好的看一遍C++ Primer这本很经典的书籍,笔记开始: 1.每个C++程序都包含一个或者多个函数,其中必须有一个main,操作系统通过调用main入手运行程序: 2.函数包括:返回 ...

  6. oneproxy---为实战而生之安装篇

       OneProxy是一款数据库中间件,与目前市面上的TDDL.MySQL-Proxy属于同类型产品.我们坚持研发OneProxy是基于如下几点考虑:       1. 我们不想被某一种开发语言绑定 ...

  7. 核心Javascript学习

    1. 引言: 1.1. 网页三要素: l HTML(内容) l CSS(外观) l Javascript(行为) 1.2.  OOP的相关概念 1). 对象,方法和属性 l 对象就是指"事物 ...

  8. django 2

    创建一个管理员用户 首先,我们需要创建一个用户可以登录到管理网站. 运行 下面的命令: $ python manage.py createsuperuser 输入你想要的用户名,按回车. Userna ...

  9. Qt之可重入与线程安全

    简述 本篇文章中,术语"可重入性"和"线程安全"被用来标记类与函数,以表明它们如何被应用在多线程应用程序中. 一个线程安全的函数可以同时被多个线程调用,甚至调用 ...

  10. Git删除远程分支

    查看 git branch -a 删除远程分支 git branch -r -d origin/branch-name  //只是删除的本地对该远程分支的track git push origin : ...