redis的list列表常用操作

redis的列表是链表的数据结构

在操作方式上来看,既可以看做队列,又可以看做为栈

就TM把它当做栈来理解!

可以认为left是栈底,right是栈顶

#这么写,可以看做是java的list
rpush [key] value1 value2
lrange [key] 0 -1
  1. 插入新列表
lpush [key] [value1] [value2] [value3] ...
rpush [key] [value1] [value2] [value3] ...
# 把这两个操作看作是入栈操作,就好理解了
# lpush 把value1,value2,value3依次从栈底入栈
# rpush 把value1,value2,value3 依次从栈顶入栈
  1. 遍历列表(遍历栈)
lrange [key] [startIndex] [endIndex]
# 遍历key这个数组,从下表为startIndex开始,遍历到下标为endIndex的元素
# 如果endIndex=-1就表示遍历到最后一位

## 也可以理解为从栈顶开始遍历
  1. 删除元素
lpop # 删除index最小的元素 或者可以理解为删除栈底元素
rpop # 删除index最大的元素,或者可以理解为删除栈顶元素
  1. 按下标选取list中的元素
lindex [list] [index]
  1. 查看list长度
llen [key]
  1. 删除N个value
lrem [key] [count] [value]
# 可以理解为,从index为0的位置开始遍历这个list
# 删除值为value的项,直到删除count项为止
  1. 从一个list中截取一段,删除其他
ltrim [key] [startIndex] [endIndex]
#从一个list中截取下标startIndex到endIndex的值
# 再赋值给key,原来的key中的值就被替换了
  1. 将一个list栈顶的一个值,放到另一个list的栈底
rpoplpush [源list] [目标list]
  1. 将list中指定的一个项,重新set值
lset [key] [index] [value]
# 将原来list中下标为index的元素,重新赋值为value
  1. 在指定的值前/后插值
linsert [key] before [value1] [value2]
# 在value1前面插入一个value2

linsert [key] after [value1] [value2]
# 在value1后面插入一个value2

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 164,152评论 24 696
  • 最近在慕课网学习廖雪峰老师的Python进阶课程,做笔记总结一下重点。 基本变量及其类型 变量 在Python中,...
    victorsungo阅读 1,108评论 0 5
  • 约定了今天下班去JL公司商量绩效考核方案事宜,如约到达。18:30-19:30与公司抽调的最核心员工团队进行了绩效...
    DennisFly阅读 131评论 0 0
  • 抱抱宝贝,今天的5分钟 哎呀呀,没办法,看到宝贝想吃的,总是忍不住要给宝贝买,么么么,但是又想看到宝贝有人鱼线,有...
    握着荆条阅读 128评论 0 0
  • 当在键盘上敲下这几个字的时候 就莫名打出来的是三月末 也许是三月对于我的意义很大吧 才能让我如此印象深...
    小小豆芽君阅读 166评论 0 2
  • 概述 Libev 是使用 Reactor 模型的实现的一个高性能事件循环库。它的主要实现包括: 在结构上分离了事件...
    OMSobliga阅读 5,912评论 0 4