菜鸟教程:https://www.runoob.com/redis/redis-lists.html

简介

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

常用命令

# 从左边/右边插入一个或多个值。
lpush/rpush  <key> <value1> <value2> <value3> ....# 从左边/右边吐出一个值。值在键在,值光键亡。
lpop/rpop  <key># 列表右边吐出一个值,插到<key2>列表左边
rpoplpush  <key1> <key2># 按照索引下标遍历列表(从左到右)
lrange <key> <start> <stop>    0 到 -1表示取全部元素# 按照索引下标获得指定index元素(从左到右)
lindex <key> <index># 获得列表长度
llen <key># 在<value>的左边插入<newvalue>
linsert  <key>  before <value> <newvalue># 从左往右数n个元素范围中删掉所有值为value的元素
lrem <key> <n> <value># 将列表key下标为index的值替换成value
lset <key> <index> <value>

数据结构

List的数据结构为快速链表quickList。

首先在列表元素较少的情况下会使用一块连续的内存存储,这个结构是ziplist,也即是压缩列表。

它将所有的元素紧挨着一起存储,分配的是一块连续的内存。

当数据量比较多的时候才会改成quicklist。

因为普通的链表需要的附加指针空间太大,会比较浪费空间。比如这个列表里存的只是int类型的数据,结构上还需要两个额外的指针prev和next。

Redis将链表和ziplist结合起来组成了quicklist。也就是将多个ziplist使用双向指针串起来使用。这样既满足了快速的插入删除性能,又不会出现太大的空间冗余。

redis数据类型-列表(List)相关推荐

  1. Redis数据类型--列表类型

    夫陶公清风千古,余又何人,敢称庶几 文章目录 介绍 一.基本命令 1. 向列表两端增加元素 2.从列表两端弹出元素 3. 获取列表中元素的个数 4.获得列表片段 二.命令进阶 1.获得/设置指定索引的 ...

  2. Redis 数据类型之(底层解析)

    Redis 数据类型之(底层解析) Redis 提供了5种数据类型:String(字符串).Hash(哈希).List(列表).Set(集合).Zset(有序集合),理解每种数据类型的特点对于redi ...

  3. Redis 数据类型介绍

    Redis 数据类型介绍 你也许已经知道Redis并不是简单的key-value存储,实际上他是一个数据结构服务器,支持不同类型的值.也就是说,你不必仅仅把字符串当作键所指向的值.下列这些数据类型都可 ...

  4. redis设置密码和启动 redis数据类型

    Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径.Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象. Redis运行在内存中 ...

  5. 【Redis】杂项基础知识;Redis数据类型

    基础知识 Redis是一个内存数据库, 所有数据基本上都存在于内存当中, 会定时以追加或者快照的方式刷新到硬盘中. 由于redis是一个内存数据库, 所以读取写入的速度是非常快的, 所以经常被用来做数 ...

  6. Redis-cluster集群【第一篇】:redis安装及redis数据类型

    Redis介绍: 一.介绍 redis 是一个开源的.使用C语言编写的.支持网络交互的.可以基于内存也可以持久化的Key-Value数据库. redis的源码非常简单,只要有时间看看谭浩强的C语言,在 ...

  7. 深入理解redis数据类型

    转载请注明出处:https://www.cnblogs.com/wenjunwei/p/9720033.html redis的存储模型 redis不是普通的键值对存储,它实际上是一个数据结构存储服务器 ...

  8. Redis压缩列表原理与应用分析

    摘要 Redis是一款著名的key-value内存数据库软件,同时也是一款卓越的数据结构服务软件.它支持字符串.列表.哈希表.集合.有序集合五种数据结构类型,同时每种数据结构类型针对不同的应用场景又支 ...

  9. Redis 压缩列表原理与应用分析

    作者 | 西瓜 来源 | JAVA架构进阶之路 摘要 Redis是一款著名的key-value内存数据库软件,同时也是一款卓越的数据结构服务软件.它支持字符串.列表.哈希表.集合.有序集合五种数据结构 ...

  10. redis数据类型list总结

    前言 在上一篇,我们简单介绍了redis数据类型中的String和hash两种常用数据类型的使用,本篇继续探讨redis数据结构中的另一种,list 列表 list简介 Redis列表是简单的字符串列 ...

最新文章

  1. modernizr 支持html5,使用modernizr.js检测浏览器对html5以及css3的支持情况
  2. AVL树C++实现(插入,删除,查找,清空,遍历操作)
  3. Gossip算法原理
  4. spark 数据存储
  5. QT的QBluetoothTransferManager类的使用
  6. 什么?你还不知道IDEA Debug界面的按钮都是干啥用的?快进来补补课~
  7. 米的换算单位和公式_小学数学公式单位换算总结,请为你的孩子收藏好
  8. 安装VisualSVN Server时候,端口号冲突
  9. html表格 溢出,html – 如何创建在溢出时滚动的表格单元格
  10. python调用cmd执行命令_python怎么运行cmd命令
  11. 常用邮箱接收邮件服务器与发送邮件服务器列表
  12. 高分子物理考研概念及要点、考点总结
  13. Android控件组合应用四
  14. React Native常用三方组件库大全
  15. 北京的“狗不理”包子与傻X
  16. Elasticsearch搜索引擎一些参数含义和用法
  17. 大数据搜索引擎技术_网络数据搜索技术
  18. 错误代码: 1100 Table 't_depart_info' was not locked with LOCK TABLES
  19. FTP登录提示421 Service not available
  20. OpenGL ES3.1使用计算着色器(Compute Shader)

热门文章

  1. QLineEdit使用正则表达式小剖析
  2. Linux的网络安装
  3. 6.支付平台架构:业务、规划、设计与实现 --- 安全与风控
  4. 8.企业应用架构模式 --- 通盘考虑
  5. 1.Linux 高性能服务器编程 --- TCP/IP 协议族
  6. 27.MySQL Status
  7. 18.Argument replacement
  8. [2019杭电多校第六场][hdu6641]TDL
  9. iBATIS的自定义类型处理器TypeHandlerCallback解决乱码
  10. stm32的rxcallback再debug界面显示没有编译,uC/OS-III