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
    原文作者:吐痰高手
    原文地址: https://www.jianshu.com/p/bf3413b4a1ac
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞