Redis 数据结构与对象

· 40字 · 1分钟

此节内容主要来自于 <Redis 设计与实现> 书中的第一部分,在此留下部分笔记与个人理解。 常见面试情形 ​ Q: Redis 有几种对象 ​ A: 5 种 blablabla 。。。。。 这种八股早已经熟稔于心,但是网上看的博客、面经得到的知识点感觉有点过于零散,没有完全理解,因此进行一次系统的学习,加强理解。

六种基础数据结构 🔗

Redis 实现了六种基础数据结构,分别是简单动态字符串(SDS),链表(List),字典/哈希表(dict),跳跃表(skiplist),整数集合(intset),下面分别来简单介绍下它们的设计思想。

简单动态字符串(SDS) 🔗

链表(List) 🔗

字典/哈希表(dict) 🔗

跳跃表(skiplist) 🔗

整数集合(intset) 🔗

五种对象 🔗

  • Redis 中总共有 5 种对象,分别为 字符串、列表、哈希、集合、有序集合对象
  • 一种对象基本对应一种基础数据结构
  • Redis 为了性能考虑,一种对象都有 2-3 种编码方式,除了对象对应的主要基础数据结构的实现以外,其它基本使用压缩列表、整数集合这种特定情形下的实现

对象与底层数据结构对应关系如下图(网图):

对象处理机制— Redis 设计与实现

1. 字符 🔗