Redis从入门到精通(三)-高阶篇

文章目录

0. 前言

欢迎来到 Redis从入门到精通博客专栏索引的第三部分!在前两部分的内容中,我们一起探索了Redis的基础知识、数据结构和常用命令等。在本专栏的第三部分,我们将继续深入研究Redis的高级功能和最佳实践。为了方便大家查看,我把之前高阶部分的文章汇集成了一个索引。大家也可以根据Redis从入门到精通的思维导图进行查看。

在之前的文章中,我们详细介绍了 Redis 中的一些底层数据结构,如简单动态字符串(SDS)、快表(QuickList)、字典(Dictionary)、整数集(IntSet)、跳表(SkipList)和链表包(listpacks)。这些底层数据结构在 Redis 中扮演着重要的角色,用于实现不同的功能和数据类型。本文将进一步详细介绍这些底层数据结构,包括它们的内部实现原理、优势以及在 Redis 中的应用。

当我们谈论 Redis 时,我们通常会讨论其用于存储和检索数据的各种数据结构。但是,这些操作必须通过一定的协议来执行,这个协议就是 Redis 协议(RESP)。RESP 是一个简单而强大的协议,设计得非常易于理解和实现,几乎可以说是目前中间件中最简单的一种协议。这也是 Redis 受到广泛欢迎的一部分原因。

Redis博客专栏思维导图
https://www.processon.com/view/link/6555e2c1c4d6c1491ae416d0

【高阶篇】3.1 Redis协议(RESP )详解

当我们谈论 Redis 时,一般来说,我们讨论的核心是它用来存储和检索数据的多种数据结构:字符串、列表(Lists)、集合(Sets)、有序集合(Sorted Sets)和散列表(Hashes)等。但是,这些操作必须通过一定的协议来执行,这个协议就是Redis协议 (RESP, Redis Serialization Protocol)。RESP 是一个简单而强大的协议,设计得非常易于理解和实现,几乎可以说是目前中间件中最简单的一种协议。这也是 Redis 受到广泛欢迎的一部分原因。
*

【高阶篇】3.3 Redis之底层数据结构简单动态字符串(SDS)详解

Redis是一个快速、开源、内存数据库,它是一个基于键值对的存储系统,由Salvatore Sanfilippo开发。Redis支持多种数据结构,其中字符串(String)是最常用的一种数据结构之一。在Redis中,字符串是由简单动态字符串(SDS)实现的。本文将详细介绍SDS的内部实现原理、优势以及在Redis中的应用。
*

【高阶篇】3.4 Redis之底层数据结构快表QuickList详解

Redis中的快表(QuickList)是一种特殊的数据结构,用于存储一系列的连续节点,每个节点可以是一个整数或一个字节数组。快表是Redis中的底层数据结构之一,常用于存储有序集合(Sorted Set)等数据类型的底层实现。在本文中,我们将深入了解Redis中的快表,包括快表的结构和操作等。
*

【高阶篇】3.5 Redis之底层数据结构字典(Dictionary)详解

上个篇章回顾,我们上个章节,讲了Redis中的快表(QuickList),它是一种特殊的数据结构,用于存储一系列的连续节点,每个节点可以是一个整数或一个字节数组。快表是Redis中的底层数据结构之一,常用于存储有序集合(Sorted Set)等数据类型的底层实现。那么本章讲解Redis中的底层数据结构中的字典(Dictionary)也称为哈希表(Hash Table)。字典(Dictionary)是一种高效的数据结构,用于存储键值对,常用于实现哈希表。
*

【高阶篇】3.6 Redis之底层数据结构整数集(IntSet)详解

上个篇章我们从源码层了解字典是一种以键值对(key-value)形式存储数据的数据结构。在 Redis 中,字典使用哈希表来实现。哈希表是一种以常数时间复杂度 O(1) 进行插入、删除和查找的数据结构。了解到在 Redis 中,字典被广泛应用于实现哈希表和集合等数据结构。本章节,我们详细了解一下Redis底层数据结构整数集(IntSet),它是用于存储整型数据,是一种紧凑的、高效的数据结构,可以用来实现集合等功能。
*

【高阶篇】3.7 Redis之底层数据结构跳表(SkipList)

本章节,我们详细了解一下在Redis又一个底层数据结构跳表(SkipList),它是一种基于链表的数据结构,用于快速地插入、删除和查找元素。跳表通过多层级的指针数组来实现快速的操作,时间复杂度为O(log n),其中n为跳表中元素的个数。Redis中的有序集合(Sorted Set 也叫ZSet 它们讲的是同一个)就是通过跳表来实现的。。
*

【高阶篇】3.8 Redis之底层数据结构链表包(listpacks)详解

本文将Redis底层数据结构 listpacks(链表包)详解,它用于实现列表数据类型。listpacks是一种紧凑的连续内存块,其设计目标是减少内存的占用,通过紧凑的内存布局和多种数据类型的编码方式,提供了高效的插入和删除操作。| zlbytes | 4字节,列表总字节数| zltail | 4字节,列表尾节点偏移量| zllen | 2字节,列表节点数量。
*

【高阶篇】3.9 Redis之底层数据结构压缩列表(ZipList)详解

本文详细介绍了Redis中的压缩列表(ZipList),包括ZipList的结构和操作等。压缩列表是Redis中的底层数据结构之一,常用于存储列表和哈希表等数据类型的底层实现。压缩列表具有紧凑的存储结构、支持动态增加和删除节点、支持快速的节点访问和遍历等优点,但也有节点大小不固定、不支持快速的节点插入和删除操作等缺点。在实际应用中,需要根据具体的需求选择合适的数据结构来存储数据。

相关推荐
MonkeyKing_sunyuhua41 分钟前
ubuntu22.04 docker-compose安装postgresql数据库
数据库·docker·postgresql
天郁青41 分钟前
数据库交互的本地项目:后台管理系统
数据库·交互
马剑威(威哥爱编程)1 小时前
MongoDB面试专题33道解析
数据库·mongodb·面试
小光学长1 小时前
基于vue框架的的流浪宠物救助系统25128(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
数据库·vue.js·宠物
掘金-我是哪吒1 小时前
微服务mysql,redis,elasticsearch, kibana,cassandra,mongodb, kafka
redis·mysql·mongodb·elasticsearch·微服务
零炻大礼包2 小时前
【SQL server】数据库远程连接配置
数据库
zmgst2 小时前
canal1.1.7使用canal-adapter进行mysql同步数据
java·数据库·mysql
随心............2 小时前
python操作MySQL以及SQL综合案例
数据库·mysql
€☞扫地僧☜€2 小时前
docker 拉取MySQL8.0镜像以及安装
运维·数据库·docker·容器
CopyDragon2 小时前
设置域名跨越访问
数据库·sqlite