zoukankan      html  css  js  c++  java
  • Redis的数据结构之List

    存储list:

    ArrayList使用数组方式

    LinkedList使用双向链接方式

     

    双向链接表中增加数据

    双向链接表中删除数据

     

    存储list常用命令

    两端添加

    两端弹出

    扩展命令

     

    lpush 方式添加

    从左边开始添加

    127.0.0.1:6379> lpush l1 a b c d

    (integer) 4

    127.0.0.1:6379> lpush l1 1 2 3 4

    (integer) 8

     

    lrange 获取指定方位的集合元素

     

    从第1个开始 到倒数第一个 也就是最后一个 也就是 所有数据

    127.0.0.1:6379> lrange l1 0 -1

    1) "4"

    2) "3"

    3) "2"

    4) "1"

    5) "d"

    6) "c"

    7) "b"

    8) "a"

     

    获取从第1个到第6个集合元素

    127.0.0.1:6379> lrange l1 0 6

    1) "4"

    2) "3"

    3) "2"

    4) "1"

    5) "d"

    6) "c"

    7) "b"

     

    rpush 从右端开始添加(一般人比较习惯这种方式)

    127.0.0.1:6379> rpush l2 a b c d

    (integer) 4

    127.0.0.1:6379> rpush l2 1 2 3 4

    (integer) 8

    127.0.0.1:6379> lrange l2 0 -1

    1) "a"

    2) "b"

    3) "c"

    4) "d"

    5) "1"

    6) "2"

    7) "3"

    8) "4"

    127.0.0.1:6379> lrange l2 0 6

    1) "a"

    2) "b"

    3) "c"

    4) "d"

    5) "1"

    6) "2"

    7) "3"

     

    lpop 左侧弹出集合元素

    rpop 右侧弹出集合元素

    127.0.0.1:6379> lrange l2 0 -1

    1) "b"

    2) "c"

    3) "d"

    4) "1"

    5) "2"

    6) "3"

    7) "4"

    127.0.0.1:6379> rpop l2

    "4"

    127.0.0.1:6379> lrange l2 0 -1

    1) "b"

    2) "c"

    3) "d"

    4) "1"

    5) "2"

    6) "3"

     

    llen查看元素个数

    127.0.0.1:6379> llen l2

    (integer) 6

     

    lpushx 集合头部插入元素

    127.0.0.1:6379> lpushx l2 xx

    (integer) 7

    127.0.0.1:6379> lrange l2 0 -1

    1) "xx"

    2) "b"

    3) "c"

    4) "d"

    5) "1"

    6) "2"

    7) "3"

     

     

     

    rpushx 集合尾部插入元素

    127.0.0.1:6379> rpushx l2 yy

    (integer) 8

    127.0.0.1:6379> lrange l2 0 -1

    1) "xx"

    2) "b"

    3) "c"

    4) "d"

    5) "1"

    6) "2"

    7) "3"

    8) "yy"

     

    lpush集合头部插入多个元素

    127.0.0.1:6379> lpush l2 a1 a2 

    (integer) 10

    127.0.0.1:6379> lrange l2 0 -1

     1) "a2"

     2) "a1"

     3) "xx"

     4) "b"

     5) "c"

     6) "d"

     7) "1"

     8) "2"

     9) "3"

    10) "yy"

     

    127.0.0.1:6379> rpush l2 a3 a4

    (integer) 12

    127.0.0.1:6379> lrange l2 0 -1

     1) "a2"

     2) "a1"

     3) "xx"

     4) "b"

     5) "c"

     6) "d"

     7) "1"

     8) "2"

     9) "3"

    10) "yy"

    11) "a3"

    12) "a4"

     

    lrem 从指定方向删除指定个数的指定元素

    先加点数据搞个新集合l3

    127.0.0.1:6379> lpush l3 1 3 2 3 2 1 2 1 3

    (integer) 9

    127.0.0.1:6379> lrange l3 0 -1

    1) "3"

    2) "1"

    3) "2"

    4) "1"

    5) "2"

    6) "3"

    7) "2"

    8) "3"

    9) "1"

     

    从左边开始删除2个1

    127.0.0.1:6379> lrem l3 2 1

    (integer) 2

    127.0.0.1:6379> lrange l3 0 -1

    1) "3"

    2) "2"

    3) "2"

    4) "3"

    5) "2"

    6) "3"

    7) "1"

     

    从右边开始删除2个3

    127.0.0.1:6379> lrem l3 -2 3

    (integer) 2

    127.0.0.1:6379> lrange l3 0 -1

    1) "3"

    2) "2"

    3) "2"

    4) "2"

    5) "1"

     

    删除所有2

    127.0.0.1:6379> lrem l3 0 2

    (integer) 3

    127.0.0.1:6379> lrange l3 0 -1

    1) "3"

    2) "1"

     

    lset 设置集合指定索引的值

    127.0.0.1:6379> lrange l1 0 -1

    1) "4"

    2) "3"

    3) "2"

    4) "1"

    5) "d"

    6) "c"

    7) "b"

    8) "a"

     

    索引从0开始

    127.0.0.1:6379> lset l1 3 xxxx

    OK

    127.0.0.1:6379> lrange l1 0 -1

    1) "4"

    2) "3"

    3) "2"

    4) "xxxx"

    5) "d"

    6) "c"

    7) "b"

    8) "a"

     

    linsert 在集合里插入指定元素

    在xxxx元素之前插入aa

    127.0.0.1:6379> linsert l1 before xxxx aa

    (integer) 9

    127.0.0.1:6379> lrange l1 0 -1

    1) "4"

    2) "3"

    3) "2"

    4) "aa"

    5) "xxxx"

    6) "d"

    7) "c"

    8) "b"

    9) "a"

     

    在xxxx元素之后插入bb

    127.0.0.1:6379> linsert l1 after xxxx bb

    (integer) 10

    127.0.0.1:6379> lrange l1 0 -1

     1) "4"

     2) "3"

     3) "2"

     4) "aa"

     5) "xxxx"

     6) "bb"

     7) "d"

     8) "c"

     9) "b"

    10) "a"

     

    rpoplpush 把A集合尾部元素弹出并插入到B集合头部

    127.0.0.1:6379> rpush l4 a b c

    (integer) 3

    127.0.0.1:6379> rpush l5 1 2 3

    (integer) 3

    127.0.0.1:6379> lrange l4 0 -1

    1) "a"

    2) "b"

    3) "c"

    127.0.0.1:6379> lrange l5 0 -1

    1) "1"

    2) "2"

    3) "3"

    127.0.0.1:6379> rpoplpush l4 l5

    "c"

    127.0.0.1:6379> lrange l4 0 -1

    1) "a"

    2) "b"

    127.0.0.1:6379> lrange l5 0 -1

    1) "c"

    2) "1"

    3) "2"

    4) "3"

  • 相关阅读:
    X3850M2安装CertOS 7 KVM 2--Mount
    X3850M2安装CertOS 7 KVM 2--VNC
    X3850M2安装CertOS 7 KVM
    vs2012 opencv 配置
    asp.net MVC code first Migrations : Model 同步到DB中
    HyperV采用硬盘拷贝的方式迁移虚拟机后的问题处理
    事后诸葛亮
    个人作业——软件产品案例分析
    冲刺总结随笔
    Alpha第九天
  • 原文地址:https://www.cnblogs.com/wqsbk/p/8571796.html
Copyright © 2011-2022 走看看