随笔分类 -  读书笔记

摘要:原理 MVCC 实现主要依赖于数据行的三个隐藏字段、UndoLog、ReadView 来实现的。 首先对于任意一行数据,它都有如下三个隐藏字段: DB_TRX_ID:最近修改的事务ID,记录修改或创建这条记录的最新事务ID; DB_ROW_ID:如果数据没有主键,生成的一个隐藏的默认主键; DB_R 阅读全文
posted @ 2023-12-28 21:30 Stitches 阅读(49) 评论(0) 推荐(0)
摘要:一、MySQL 逻辑结构 首先 MySQL 整体结构上分为 server层、存储引擎层。其中 Server 层包含如下组件: 连接器:管理客户端连接,权限认证 查询缓存:缓存查询的语句和结构 分析器:分析查询SQL语句,包括词法分析、语法分析 优化器:生成执行计划,选择更高效查询方式的索引 执行器: 阅读全文
posted @ 2023-12-28 21:28 Stitches 阅读(229) 评论(0) 推荐(0)
摘要:SDS 动态字符串 Redis 是 c 语言实现的,传统 c 字符串存在不可变导致的频繁内存分配,一些 API 函数可能引起缓冲区溢出等问题。 Redis 在 c 字符串的基础上,封装实现了 SDS动态字符串,能够根据每次存储关键字的大小自动申请额外缓冲区内存,避免频繁申请和缓冲区溢出问题。 SDS 阅读全文
posted @ 2023-08-14 11:49 Stitches 阅读(56) 评论(0) 推荐(0)
摘要:前言 《Redis设计与实现》数据结构部分有关字符串类型介绍。 @(文章目录) 一、数据结构——简单动态字符串 1.1 SDS定义 在Redis中,没有直接使用C语言的字符串来表示,而是采用自己构建的简单动态字符串(simple dynamic string,SDS) 的抽象类型,并将 SDS 用作 阅读全文
posted @ 2023-02-24 21:11 Stitches 阅读(74) 评论(0) 推荐(0)
摘要:前言 Redis 内部消息通信机制学习和了解 @(文章目录) 一、Redis中事件的分类 Redis是一个事件驱动程序,服务器需要处理以下两种事件: 文件事件:Redis服务器通过套接字与客户端进行连接,文件事件就是对套接字操作的抽象。服务器和客户端的通信会产生相应的文件事件,而服务器则通过监听并处 阅读全文
posted @ 2023-02-24 21:11 Stitches 阅读(179) 评论(0) 推荐(0)
摘要:前言 深入了解一下Redis内存机制如何存储数据,以及对于过期数据采取何种策略来清理。 @(文章目录) 一、Redis服务器中的数据库 Redis服务器将所有的数据库保存在 redis.h/redisServer 结构的 db 数组中,db 数组的每个项都是一个 redis.h/redisDb 结构 阅读全文
posted @ 2023-02-24 21:11 Stitches 阅读(88) 评论(0) 推荐(0)
摘要:前言 Redis设计与实现读书笔记,基础数据结构部分——跳跃表与压缩列表 @(文章目录) 一、跳跃表 1.1 跳跃表概念 跳表(SkipList) 是用于有序元素序列快速搜索查找的一个数据结构,跳表是一个随机化的数据结构,实质上是一种可进行二分查找的有序链表。跳表在原有的有序链表上面增加了多级索引, 阅读全文
posted @ 2023-02-24 21:11 Stitches 阅读(688) 评论(0) 推荐(0)
摘要:前言 Redis 中的复制命令原理 @(文章目录) Redis中可以通过 SLAVEOF 命令来设置一个服务器为从服务器,从而复制指定的主服务器的数据。 一、旧版复制原理 旧版复制功能包括 同步(sync) 和 命令传播 两个操作。 1.1 同步 从服务器对主服务器的同步操作需要发送 SYNC 命令 阅读全文
posted @ 2023-02-24 21:11 Stitches 阅读(104) 评论(0) 推荐(0)
摘要:前言 前面介绍了 Redis底层的数据类型,但是Redis常用的五种数据结构是怎样的呢? @(文章目录) 一、对象类型介绍 1.1 概念 前面介绍了几种Redis 底层使用的数据结构,比如 简单动态字符串(SDS)、双端链表、字典、压缩列表、整数集合、跳跃表等。但是Redis并没有直接使用这些数据结 阅读全文
posted @ 2023-02-24 21:10 Stitches 阅读(77) 评论(0) 推荐(0)