redis基本数据结构-列表

redis基本数据结构-列表list

 

  • 特性
  • 每个列表键最多存储 2^32 - 1个字符串元素
  • 元素在列表中有序
  • 元素在列表中不唯一

 

 


 

 

  • 向列表左侧添加元素 
lpush  key value
lpush number 1

lpush number 2

number = [2, 1]

 

 

  • 向列表右侧添加元素 
rpush key value
rpush number 3

rpush number 4

rpush number 5

 number = [2, 1, 3, 4, 5]

 

 

  • 从列表左侧弹出元素 
lpop key
lpop number

 返回2, number = [1, 3, 4, 5]

 

 

  • 从列表右侧弹出元素 
rpop key 
rpop number

 返回5, number = [1, 3, 4]

 

 

  • 获取列表中元素个数 
llen key
llen number 

 返回3, number = [1, 3, 4]

 

 

  • 获取列表片段(切片) 
lrange key startIndex  endIndex
lrange number 0  1  

 返回1, 3

lrange number 0  -1

 返回1, 3, 4

说明: [startIndex, endIndex] 为闭区间, 负数index指示从后往前的index,最后一个为-1

 

 

  • 删除列表中的前count个元素中置为value的元素 
lren  key  count  value
lpush number 3

 number = [3, 1, 3, 4]

lrem number 3  3   // 删除前3个元素中值为3的元素 

lrem number 3  3

 返回2(实际删除个数)

number = [1, 4]

 

 

  • 获取指定位置的元素值 
lindex key index 
lpush number 2

 number  = [2, 1, 4]

lindex number 0 === 2

lindex number 1 === 1

lindex number 2 === lindex number -1 === 4

 

  • 设置指定位置的元素值
lset key index value 
lset number 0  hello

  number = [hello, 1, 4]

 

 

  • 删除置顶范围以外的元素
ltrim key startIndex endIndex

 说明: [startIndex, endIndex] 为闭区间

ltrim number 0 1

 number = [hello, 1]

 

 

  • 向列表中指定元素值前/后插入元素(是在从左侧开始第一个该指定值出现的位置前/后)
linsert key BEFORE/AFTER  pivot  value 
lpush number 1

 number = [1, hello, 1]

linsert number before 1 2

 number = [2, 1, hello, 1] 

linsert number after 1 3

 number = [2, 1, 3, hello, 1]

 

 

 

  • 将一个列表移动到另一个列表(每次只移动一个元素) 
rpoplpush key1 key2

 number = [2, 1, 3, hello, 1] 

rpoplpush number  number2

number = [2, 1, 3, hello]

number2 = [1] 

rpoplpush number number2

 number = [2, 1, 3]

number2 = [hello, 1]

 

posted on 2021-04-26 21:56  崔好好  阅读(66)  评论(0编辑  收藏  举报

导航