redis读书笔记
文章平均质量分 80
PnJg?
这个作者很懒,什么都没留下…
展开
-
《Redis设计与实现》读书笔记-第三部分:多机数据库的实现-1:复制
目录 1.旧版复制功能的实现 1.1同步 1.2命令传播 2.旧版复制功能的缺陷 3.新版复制功能的实现 4.部分同步的实现 4.1复制偏移量 4.2复制积压缓冲区 4.3服务器运行ID 5.PSYNC命令的实现 6.复制的实现 6.1步骤1:设置主服务器的地址和端口 6.2步骤2:建立套接字连接 6.3步骤3:发送PING命令 6.4步骤4:身份验证 6.5步骤5:发送端口信息 6.7步骤6:同步 6.7步骤7:命令传播 7.心跳检测 7...原创 2022-05-05 22:13:19 · 925 阅读 · 0 评论 -
《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-1:数据库
目录 1.数据库 1.1服务器中的数据库 1.3数据库键空间 1.3.1添加新键 1.3.2删除键 1.3.3更新键 1.3.4对键取值 1.3.5其他键空间操作 1.3.6读写键空间时的维护操作 1.4设置键的生存空间或过期空间 1.4.1设置过期时间 1.4.2保存过期时间 1.4.3移除过期时间 1.4.4计算并返回剩余生存时间 1.4.5过期键的判定 1.5过期键的删除策略 1.5.1定时删除 1.5.2惰性删除 1.5.3定期删除 1...原创 2022-04-27 17:46:40 · 88 阅读 · 0 评论 -
《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-4:客户端与服务端
1、客户端 redis服务器是典型的一对多服务器程序:一个服务器可以与多个客户端建立起网络连接,每个客户端可以向服务器发送命令请求,而服务器则接收并处理客户端发送的命令请求,并向客户端返回命令回复。 redis服务器状态结构的clients属性是一个链表,这个链表保存了所有与服务器连接的客户端状态结构,对客户端执行批量操作或者查找某个指定的客户端,都可以通过遍历clients链表完成: 1.1客户端属性 1.1.1套接字描述符 客户端状态的fd属性记录了客户端正在使用的套接字描述符: ...原创 2022-05-05 20:44:33 · 145 阅读 · 0 评论 -
《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-3:事件
Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件: 文件事件:Redis服务器通过套接字与客户端(或者其他redis服务器)连接,而文件事件就是服务器对套接字操作的抽象。服务器与客户端(或者其他服务器)的通新会产生相应的文件事件,而服务器则通过监听并处理这些事件来完成一系列网络通信操作。 时间事件:redis服务器中的一些操作(比如serverCron函数)需要在给定的时间点执行,而时间事件就是服务器对这类定时操作的抽象。 目录 1、文件事件 1.1文件事件处理器的构成 1.2I.原创 2022-04-28 16:35:28 · 763 阅读 · 0 评论 -
《Redis设计与实现》读书笔记-第二部分:单机数据库的实现-2:持久化
1、RDB持久化 数据库状态:服务器中非空数据库以及他们的键值对统称为数据库状态。 RDB持久化既可以手动也可以根据服务器配置定期执行。将某个时间点上的数据库状态保存到一个RDB文件中(二进制文件)。通过该文件可以还原生成RDB文件时的数据库文件。 1.1RDB文件的创建与载入 生成RDB文件的命令:SAVE\BGSAVE。两者区别: RDB文件的载入工作是在服务器启动的时候自动执行的,所以Redis没有专门载入RDB文件的命令,只要Redis服务器在启动时检测到RDB文件的存在就会自动.原创 2022-04-27 22:16:12 · 498 阅读 · 0 评论 -
《Redis设计与实现》读书笔记-第一部分:数据结构与对象
1.1简单动态字符串(SDS): 1、redis构建了一种名为简单动态字符串得抽象类型,并用此作为redis默认的字符串表示。 2、C字符串只会在redis中最为字符串字面量(无需修改的地方) 3、SDS遵循C字符串以空字符串结尾的惯例,保存空字符的一字节空间不算在SDS的len属性里面;遵循空字节符结尾的好处是可以直接用C字符串函数库的函数(例如复制、对比等) 4、SDS跟C字符串的区别: SDS结构中又专门记录SDS字符串的属性,所以可以在常数复杂度获取字符串长度 SDS字符串可以防止缓冲区原创 2022-04-26 21:54:16 · 1215 阅读 · 0 评论 -
《Redis设计与实现》读书笔记-第三部分:多机数据库的实现-2:Sentinel
目录 1.启动并初始化sentinel 1.1初始化服务器 Sentinel(哨岗、哨兵)是redis的高可用性解决方案:有一个或多个Sentinel实例(instance)组成的sentinel系统(system)可以监视任意多个主服务器以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线的主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求。 假设这时,主服务器server1进入下线状态,那么从服务器se.原创 2022-05-11 17:36:28 · 97 阅读 · 0 评论 -
《Redis设计与实现》读书笔记-第三部分:多机数据库的实现-3:集群
1.节点 一个redis集群通常由多个节点组成,在刚开始的时候,每个节点都是相互独立的,它们都处于一个只包含自己的集群中,要建立一个真正可工作的集群,我们必须将各个独立的节点连接起来,构成一个包含多个节点的集群。连接各个节点可以通过CLUSTER MEET命令完成 1.1启动节点 一个节点就是一个运行在集群模式下的redis服务器,Redis服务器在启动时会根据cluster-enabled配置选项是否为yes来决定是否开启服务器的集群模式: 节点 ,即运行在集群模式下的Redis服务器....原创 2022-05-12 17:14:28 · 99 阅读 · 0 评论