Loading

02 2022 档案

摘要:整体概述 客户端属性 套接字描述符 标志 输入缓冲区 命名及命令参数 命令的实现函数 输出缓冲区 客户端的创建与关闭 创建普通客户端 关闭普通客户端 参考链接 Redis 源码简洁剖析系列 整体概述 Redis 一个服务器可以和多个客户端建立网络连接,每个客户端都可以向服务器发送命令请求,服务器接收 阅读全文
posted @ 2022-02-22 08:24 Yano_nankai 阅读(331) 评论(0) 推荐(2) 编辑
摘要:AOF 是什么 AOF 持久化的实现 命令追加 AOF 文件的写入和同步 AOF 文件的载入和数据还原 AOF 重写 为什么需要重写 什么是重写 如何重写 AOF 后台重写 为什么需要后台重写 带来的问题 AOF 重写缓冲区 注意 实际例子 参考链接 Redis 源码简洁剖析系列 AOF 是什么 A 阅读全文
posted @ 2022-02-21 08:12 Yano_nankai 阅读(161) 评论(0) 推荐(2) 编辑
摘要:Redis 持久化方式 RDB 优势 劣势 AOF 优势 劣势 Redis < 7.0 参考链接 Redis 源码简洁剖析系列 Redis 持久化方式 主要参考 Redis 官方文档:Redis Persistence。共有 4 种持久化方式: RDB (Redis Database):以指定的时间 阅读全文
posted @ 2022-02-21 08:10 Yano_nankai 阅读(120) 评论(0) 推荐(2) 编辑
摘要:RDB 是什么 RDB 文件格式 Header Body DB Selector AUX Fields Key-Value Footer 编码算法说明 Length 编码 String 编码 Score 编码 Value 编码 List Set Sorted Set Hash Zipmap Zipl 阅读全文
posted @ 2022-02-20 09:09 Yano_nankai 阅读(638) 评论(2) 推荐(2) 编辑
摘要:命令的处理过程 Redis server 和一个客户端建立连接后,会在事件驱动框架中注册可读事件——客户端的命令请求。命令处理对应 4 个阶段: 命令读取:对应 readQueryFromClient 函数 命令解析:对应 processInputBuffer 函数 命令执行:对应 processC 阅读全文
posted @ 2022-02-17 10:11 Yano_nankai 阅读(998) 评论(0) 推荐(1) 编辑
摘要:Redis 到底是不是单线程的程序? 多 IO 线程的初始化 IO 线程运行函数 IOThreadMain 如何推迟客户端「读」操作? 如何推迟客户端「写」操作? 如何把待「读」客户端分配给 IO 线程执行? 如何把待「写」客户端分配给 IO 线程执行? 总结 参考链接 Redis 源码简洁剖析系列 阅读全文
posted @ 2022-02-15 10:36 Yano_nankai 阅读(1063) 评论(0) 推荐(2) 编辑
摘要:aeEventLoop IO 事件处理 IO 事件创建 读事件处理 写事件处理 时间事件处理 时间事件定义 时间事件创建 时间事件回调函数 时间事件的触发处理 参考链接 Redis 源码简洁剖析系列 aeEventLoop Redis 事件驱动框架对应的数据结构,在 ae.h 中定义,记录了运行过程 阅读全文
posted @ 2022-02-11 10:44 Yano_nankai 阅读(1059) 评论(0) 推荐(1) 编辑
摘要:Reactor 模型 事件驱动框架 Redis 如何实现 Reactor 模型 事件的数据结构:aeFileEvent 主循环:aeMain 函数 事件捕获与分发:aeProcessEvents 函数 事件注册:aeCreateFileEvent 函数 总结 参考链接 Redis 源码简洁剖析系列 阅读全文
posted @ 2022-02-10 10:22 Yano_nankai 阅读(682) 评论(0) 推荐(3) 编辑
摘要:select, poll, epoll 源码分析 参考链接 Redis 源码简洁剖析系列 select, poll, epoll 关于 select, poll, epoll,​网络 IO 演变发展过程和模型介绍 这篇文章讲得很好,本文就不浪费笔墨了。 Redis 如何针对不同操作系统,选择不同的 阅读全文
posted @ 2022-02-10 10:20 Yano_nankai 阅读(282) 评论(0) 推荐(1) 编辑
摘要:前言 问题 阶段 1:基本初始化 阶段 2:检查哨兵模式,执行 RDB 或 AOF 检测 阶段 3:运行参数解析 阶段 4:初始化 server 资源管理 初始化数据库 创建事件驱动框架 阶段 5:执行事件驱动框架 参考链接 Redis 源码简洁剖析系列 前言 main 函数是 Redis 整个运行 阅读全文
posted @ 2022-02-09 10:05 Yano_nankai 阅读(593) 评论(4) 推荐(1) 编辑
摘要:quicklist 为什么要设计 quicklist 特点 数据结构 quicklistCreate quicklistDelIndex quicklistDelEntry quicklistInsertBefore, quicklistInsertAfter listpack 是什么 数据结构 编 阅读全文
posted @ 2022-02-08 09:20 Yano_nankai 阅读(1256) 评论(0) 推荐(4) 编辑
摘要:ziplist 是什么 Redis 哪些数据结构使用了 ziplist? ziplist 特点 优点 缺点 ziplist 数据结构 ziplist 节点 pre_entry_length encoding 和 length content ziplist 基本操作 创建新 ziplist 将节点添 阅读全文
posted @ 2022-02-07 14:10 Yano_nankai 阅读(439) 评论(0) 推荐(3) 编辑