redis中list数据储存结构

LIST

自我感悟:

redis中的list,能够做的事情是非常多的,他能过做数组,也能做队列,还能做栈,也能做链表,其实本来就是线性表的集合,对于数据结构来说。能够理解此处的list,之前学习的数据结构思维是功不可没的,还是需要对数据结构进行深刻理解

在这里插入图片描述

    • lpush(对list操作进行添加元素操作,这里就用的是栈的操作理解),先进后出,后进先出,并且这里添加之后对应的元素序号以及变换为数组下标之后是完全相反的,注意理解,不同的思考角度对应的理解是完全不同的
    127.0.0.1:6379> lpush list01 jack
    (integer) 1
    127.0.0.1:6379> lpush list01 queen
    (integer) 2
    127.0.0.1:6379> lpush list02 king
    (integer) 1
    127.0.0.1:6379> lpush list01 king
    (integer) 3
    127.0.0.1:6379> lpush list01 ace
    (integer) 4
    
    • 当然了,对于队列来说,你可以从左边进行添加元素,也可以从右边来对元素进行添加

    • 这里可以使用 rpush(从右边开始添加),那么就和上面左边添加就完全相反了

    • 127.0.0.1:6379> lrange list01 0 -1
      1) "ace"
      2) "king"
      3) "queen"
      4) "jack"
      127.0.0.1:6379> rpush list04 jack
      (integer) 1
      127.0.0.1:6379> rpush list04 queen
      (integer) 2
      127.0.0.1:6379> rpush list04 king
      (integer) 3
      127.0.0.1:6379> rpush list04 ace
      (integer) 4
      127.0.0.1:6379> lrange list04 0 -1
      1) "jack"
      2) "queen"
      3) "king"
      4) "ace"
      127.0.0.1:6379> 
      
      

      嵌合指令

      rpoplpush 加上源List集合 添加到list集合中

      127.0.0.1:6379> lrange list04 0 -1
      1) "jack"
      2) "queen"
      3) "king"
      127.0.0.1:6379> rpoplpush list04 list
      "king"
      127.0.0.1:6379> lrange list04 0 -1
      1) "jack"
      2) "queen"
      127.0.0.1:6379> lrange list 0 -1
      1) "king"
      2) "king"
      3) "jocker"
      4) "some"
      5) "jocker"
      6) "queen"
      7) "jack"
      
      
    • lnsert key before\after 对应元素 对应值

      如何进行操作理解还是非常必要的,这就也是需要进行图形化的理解,前后对应关系还是需要理解的

    • 127.0.0.1:6379> linsert list before queen jocker
      (integer) 2
      127.0.0.1:6379> linsert list after  queen king
      (integer) 3
      127.0.0.1:6379> lrange list 0 -1
      1) "jocker"
      2) "queen"
      3) "king"
      127.0.0.1:6379> 
      
    • lrem 删除其中元素自定义次数
    127.0.0.1:6379> lrange list 0 -1
    1) "jocker"
    2) "wang"
    3) "jocker"
    4) "some"
    5) "jocker"
    6) "queen"
    7) "jack"
    127.0.0.1:6379> lrem list 2 jocker
    (integer) 2
    127.0.0.1:6379> lrange list 0 -1
    1) "wang"
    2) "some"
    3) "jocker"
    4) "queen"
    5) "jack"
    
    
    • lset + 数组下标 更改的元素
    127.0.0.1:6379> lset list 0 wang
    OK
    127.0.0.1:6379> lrange list 0 -1
    1) "wang"
    2) "king"
    3) "jocker"
    4) "some"
    5) "jocker"
    6) "queen"
    7) "jack"
    
    
    • 查看当前list集合中的元素

    lrange list 0 -1 和之前STRNG类型的查看是完全一致的,最后一个元素的下标是-1

    127.0.0.1:6379> lrange list04 0 -1
    1) "jack"
    2) "queen"
    3) "king"
    4) "ace"
    
    • 下标还是通过数组下表来进行理解喔,就是最后结尾需要注意

    • ltrim 将一个list集合中的元素截取出来后,进行显示

      127.0.0.1:6379> lrange list04 0 -1
      1) "jack"
      2) "queen"
      3) "king"
      4) "ace"
      127.0.0.1:6379> ltrim list04 0 2
      OK
      127.0.0.1:6379> lrange list04 0 -1
      1) "jack"
      2) "queen"
      3) "king"
      
      

    还有就是关于其他的小操作

    lpoplist元素弹出操作理解:

    ​ 将list集合中的元素从左边进行弹出操作理解,当然也存在rpop操作形式的理解

    默认弹出是一个,左右方向不限制,你还可以进行自定义操作理解,也就是在后面选择弹出多少元素操作

    127.0.0.1:6379> lpop list
    "wang"
    127.0.0.1:6379> lpop list 2\
    (error) ERR value is out of range, must be positive
    127.0.0.1:6379> lpop list 2
    1) "some"
    2) "jocker"
    127.0.0.1:6379> rpop list 
    "jack"
    127.0.0.1:6379> lrange list 0 -1
    1) "queen"
    127.0.0.1:6379> 
    

 be positive
  127.0.0.1:6379> lpop list 2
  1) "some"
  2) "jocker"
  127.0.0.1:6379> rpop list 
  "jack"
  127.0.0.1:6379> lrange list 0 -1
  1) "queen"
  127.0.0.1:6379> 
  ``

在这里插入图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值