《redis设计与实现》数据结构篇,有哪些关键点值得共读探讨?
- 内容介绍
- 文章标签
- 相关推荐
本文共计7499个文字,预计阅读时间需要30分钟。
每月读一本专业书籍+提前将之前积压的书先浏览一遍,主要是有一个大致的了解,之后用的时候也知道在哪里找。所以,准备开几篇共读书的帖子,激发大家多看书。+Redis+基于+简单动态字符集
每个月读一本厚书准备将之前攒下的书先看一遍,主要是有个大概的了解,以后用的时候也知道在哪里找。所以准备开几篇共读的帖子,激励自己多看一些书。
Redis 基于 简单动态字符串(SDS)、双端链表、字典、压缩列表、整数集合等基础的数据结构,创建了一个对象系统,这个对象系统包含:字符串对象(String)、列表对象(List)、集合对象(Set)、有序集合对象(Zset)、哈希对象(Hash) 5种数据对象类型。但是这5种对象类型,其内部的基础的存储结构 并不是 一对一的一种,而是每一种包含了至少两种数据结构。
我们这篇主要用来说一下其基础的存储结构
前提条件redis 底层是使用C语言编写的,所以很多函数直接使用的C库。
一、SDS(简单动态字符串)我们知道C语言中字符串 是以字符数组char[]进行存储的,字符串的结束是以 空字符‘/0’ 来进行标识的,也就是字符串的实际长度比我们看见的字符串都会多1 byte(字节)。
如果我们想要查看一下字符串的长度,那么就需要遍历一下字符数组,时间复杂度为O(n)。
本文共计7499个文字,预计阅读时间需要30分钟。
每月读一本专业书籍+提前将之前积压的书先浏览一遍,主要是有一个大致的了解,之后用的时候也知道在哪里找。所以,准备开几篇共读书的帖子,激发大家多看书。+Redis+基于+简单动态字符集
每个月读一本厚书准备将之前攒下的书先看一遍,主要是有个大概的了解,以后用的时候也知道在哪里找。所以准备开几篇共读的帖子,激励自己多看一些书。
Redis 基于 简单动态字符串(SDS)、双端链表、字典、压缩列表、整数集合等基础的数据结构,创建了一个对象系统,这个对象系统包含:字符串对象(String)、列表对象(List)、集合对象(Set)、有序集合对象(Zset)、哈希对象(Hash) 5种数据对象类型。但是这5种对象类型,其内部的基础的存储结构 并不是 一对一的一种,而是每一种包含了至少两种数据结构。
我们这篇主要用来说一下其基础的存储结构
前提条件redis 底层是使用C语言编写的,所以很多函数直接使用的C库。
一、SDS(简单动态字符串)我们知道C语言中字符串 是以字符数组char[]进行存储的,字符串的结束是以 空字符‘/0’ 来进行标识的,也就是字符串的实际长度比我们看见的字符串都会多1 byte(字节)。
如果我们想要查看一下字符串的长度,那么就需要遍历一下字符数组,时间复杂度为O(n)。

