zoukankan      html  css  js  c++  java
  • 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]

    **********************技术交流请 email:cuihao0532#163.com 欢迎转载,转载请注明出处!***************************** 如果对本文满意请扫描文章左侧【二维码添加微信】获取更多好玩、有趣、有益、有营养的料, 你我共同成长!Y(^_^)Y
  • 相关阅读:
    豆瓣还是能学到东西的!
    Mip-Mapping很重要
    果然还是SB了
    Don't Starve,好脚本,好欢乐
    Soft Renderer的乐趣
    java classloader原理深究
    用gitolite搭建git server
    神话设计模式 --开端
    Dive into Spring framework -- 了解基本原理(二)--设计模式-part2
    Dive into Spring framework -- 了解基本原理(二)--设计模式-part1
  • 原文地址:https://www.cnblogs.com/cuish/p/14706687.html
Copyright © 2011-2022 走看看