redis 底层数据结构「建议收藏」

redis 底层数据结构「建议收藏」redis底层数据结构

简单动态字符串SDS

  • 包含字符串长度,剩余可用长度,字符数组
  • 用于Redis中所有的string存储

字典(map)

  • 数组+链表形式,跟hashMap很像
  • 链地址法解决hash冲突
  • rehash使用新建hash数组链表进行数据rehash迁移,扩容是大于原数组长度的第一个2的n次幂
    渐进式rehash,就是不是一次性迁移完,而是在CRUD操作时,一点点迁移
  • 用于hash类型数据

链表

  • 双端列表,直接有列表长度属性
  • 用于list类型数据

跳跃表

  • 带分值得一种有序类链表结构
  • 每个节点中的level中存储分值相同的数据
  • 每个level中数据都有一个前进指针
  • 用于sortedSet类型

整数集合

  • 底层是int数组,通过encoding决定int的长度,也可以在存储过程中进行长度升级,比如原先存储的16位整形,要存一个32位整数,就需要进行类型升级
  • 升级的好处就是类型灵活,节约内存
  • 用于数据量比较小并且都是整形的list类型

压缩列表

  • 有内存字节数,节点个数,节点等属性的顺序型结构
  • 用于整形或者长度较短的字符串的list,hash等类型

转载请注明出处 阿布的夏天

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10893.html

(0)
上一篇 2022-12-20 09:00
下一篇 2022-12-20

相关推荐

  • 基础架构(1)[通俗易懂]

    基础架构(1)[通俗易懂]`MySQL`分为两部分: 层 包含连接器、查询缓存、分析器、优化器、执行器等,涵盖 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比

    2023-02-11
    137
  • Python中exp的神奇力量:快速计算指数函数

    Python中exp的神奇力量:快速计算指数函数在Python中,我们可以使用import math语句来导入math库,其中包含了一个常量e,即自然对数的底数:

    2024-02-21
    143
  • mac(m1)配置my.cnf[亲测有效]

    mac(m1)配置my.cnf[亲测有效]今天开始学习了数据库,在安装MySQL之后启动一直报错,然后在网上找了很多解决方法,最后用以下方法解决 对于习惯了windows的小伙伴来说,直接去安装目录里边修改my.ini就可以,对于习惯了Lin

    2023-05-27
    147
  • 分布式数据库调优实践

    分布式数据库调优实践数据库调优实践案例 数据库作为基础数据支撑层的核心部分,对于应用和平台整体性能表现有着决定性的影响。因此,数据库性能优化可以说是最考验DBA能力的工作了。本文我们就由数据库内核专家来,以 Sequo…

    2023-03-15
    172
  • Connect SQL Server from Linux Client using Windows Authentication and troubleshoot steps

    Connect SQL Server from Linux Client using Windows Authentication and troubleshoot stepshttps://sqlserver.code.blog/2019/12/14/connect-sql-server-from-linux-client-using-windows-authentica

    2022-12-26
    181
  • [20211105]索引分裂 块清除 日志增加.txt「终于解决」

    [20211105]索引分裂 块清除 日志增加.txt「终于解决」[20211105]索引分裂 块清除 日志增加.txt–//题目起的有点怪,只是我昨天在测试时遇到的怪问题,我通过测试环境演示出来。–//当非主键索引发生分裂时发生的情况。1.环境:SCOTT@b

    2023-04-26
    138
  • Python二维数组操作指南

    Python二维数组操作指南在Python编程语言中,数组是一个非常重要的数据结构。数组可以用于存储同种类型的一组数据。Python中的数组是一种序列,它可以用来存储数字、字符串和其他对象等元素。

    2024-05-17
    71
  • Python断点调试详解

    Python断点调试详解在软件开发过程中,代码出现问题是常见的情况,为了尽快解决问题,开发者需要使用一些工具来调试代码。Python作为一门强大而又易学的编程语言,也提供了许多调试工具来协助开发者。

    2024-08-16
    25

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注