此节内容主要来自于 <Redis 设计与实现> 书中的第一部分,在此留下部分笔记与个人理解。 常见面试情形 Q: Redis 有几种对象 A: 5 种 blablabla 。。。。。 这种八股早已经熟稔于心,但是网上看的博客、面经得到的知识点感觉有点过于零散,没有完全理解,因此进行一次系统的学习,加强理解。
六种基础数据结构 🔗
Redis 实现了六种基础数据结构,分别是简单动态字符串(SDS),链表(List),字典/哈希表(dict),跳跃表(skiplist),整数集合(intset),下面分别来简单介绍下它们的设计思想。
简单动态字符串(SDS) 🔗
链表(List) 🔗
字典/哈希表(dict) 🔗
跳跃表(skiplist) 🔗
整数集合(intset) 🔗
五种对象 🔗
- Redis 中总共有 5 种对象,分别为 字符串、列表、哈希、集合、有序集合对象
- 一种对象基本对应一种基础数据结构
- Redis 为了性能考虑,一种对象都有 2-3 种编码方式,除了对象对应的主要基础数据结构的实现以外,其它基本使用压缩列表、整数集合这种特定情形下的实现
对象与底层数据结构对应关系如下图(网图):