• redis学习笔记(3)list数据类型


    1、概述

    单键多值:Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差。

     2、相关操作

    • lpush key value1 [value2]--------------将一个或多个值插入到列表头部,返回插入数量,从1开始
    • lpushx key value--------------将一个值插入到已存在的列表头部,返回integer,0-插入失败,成功返回当前list数量
    • rpush key value1 [value2]--------------在列表中添加一个或多个值,返回integer,0-插入失败,成功返回当前list数量
    • rpushx key value------------------为已存在的列表添加值,返回integer,0-插入失败,成功返回当前list数量
    • lset key index value--------------通过索引设置列表元素的值
    • linsert key BEFORE|AFTER pivot value----------------在列表的元素(pivot)前或者后插入元素,返回integer,-1-插入失败,成功返回当前list数量
    • brpoplpush source destination timeout---------------从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹
    • lindex key index------------------通过索引获取列表中的元素
    • llen key----------------获取列表长度
    • lrange key start stop-----------------获取列表指定范围内的元素,start、stop超出范围,只返回范围内存在的元素
    • blpop key1 [key2 ] timeout-----------------移出并获取列表的第一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
    • brpop key1 [key2 ] timeout------------------移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
    • rpoplpush source destination--------------移除列表的最后一个元素,并将该元素添加到另一个列表并返回
    • lpop key-------------------移出并获取列表的第一个元素
    • lrem key count value--------------移除列表中count个value元素,返回移除成功的数量
    • rpop key---------------移除并获取列表最后一个元素
    • ltrim key start stop---------------对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。

    3、数据结构

    • List 的数据结构为快速链表 quickList。
    • 首先在列表元素较少的情况下会使用一块连续的内存存储,这个结构是 ziplist,也即是压缩列表。它将所有的元素紧挨着一起存储,分配的是一块连续的内存。
    • 当数据量比较多的时候才会改成 quicklist。因为普通的链表需要的附加指针空间太大,会比较浪费空间。比如这个列表里存的只是 int 类型的数据,结构上还需要两个额外的指针 prev 和 next。

                               

    • Redis 将链表和 ziplist 结合起来组成了 quicklist。也就是将多个 ziplist 使用双向指针串起来使用。这样既满足了快速的插入删除性能,又不会出现太大的空间冗余。
  • 相关阅读:
    Sublime Text 命令大全(积累所得)
    端口号
    帝之意志 看透世间
    Session and Cookie的基础用法
    厌胜术
    微信支付
    微信登录
    navicat常用快捷键与SQL基本使用
    idea Spring项目一直报错,但是点击进去就恢复正常了,解决办法,通过mvn idea:module命令生成iml文件
    解决报错WARNING: IPv4 forwarding is disabled. Networking will not work.
  • 原文地址:https://www.cnblogs.com/mango1997/p/16210273.html
Copyright © 2020-2023  润新知