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"

  • 相关阅读:
    高盛、沃尔玛 题做出来还挂了的吐槽
    amazon师兄debrief
    到所有人家距离之和最短的中点 296. Best Meeting Point
    问问题没人回答的情况怎么办终于有解了
    找名人 277. Find the Celebrity
    数组生存游戏 289. Game of Life
    547. Number of Provinces 省份数量
    428. Serialize and Deserialize Nary Tree 序列化、反序列化n叉树
    alias别名简介和使用
    面试官:线程池执行过程中遇到异常会发生什么,怎样处理? Vincent
  • 原文地址:https://www.cnblogs.com/wqsbk/p/8571796.html
Copyright © 2011-2022 走看看