redis
文章平均质量分 96
光看不点赞
这个作者很懒,什么都没留下…
展开
-
Redis设计与实现(八)| 事务
事务的四大特性:原子性、一致性、隔离性、持久性原创 2022-06-26 22:02:33 · 1763 阅读 · 0 评论 -
Redis设计与实现(七)| 发布 & 订阅
redis的发布与订阅原创 2022-06-26 22:01:14 · 1830 阅读 · 0 评论 -
Redis设计与实现(六)| 集群(分片)
clusterLink结构1.3 CLUSTER MEET命令的实现概述2.槽指派概述2.1 记录节点的槽指派信息概述slots数组总结2.2 传播节点的槽指派信息概述2.3 记录集群所有槽的指派信息概述获取键的槽3.2 判断槽是否由当前节点负责处理概述3.3 MOVED错误概述格式3.4 节点数据库的实现概述3.4.1 槽与键的映射关系及操作概述添加新的键值原创 2022-06-26 21:59:59 · 2204 阅读 · 0 评论 -
Redis设计与实现(五)| Sentinel哨兵
1.1 初始化服务器概述1.2 使用Sentinel专用代码概述1.3 初始化Sentinel状态概述1.4 初始化Sentinel状态的masters属性概述实体结构如下说明假如有两个这样的结构,那么宏观上就是如下图1.5 创建连向主服务器的网络连接概述2.获取主服务器信息概述更新slaves字典结构如下3.获取从服务器的信息概述4.向主服务器和从服务器发送消息概述信息有关参数原创 2022-06-26 21:57:49 · 166 阅读 · 0 评论 -
Redis设计与实现(四)| 主从复制
1.旧的主从复制概述1.1 同步流程图1.2 命令传播概述1.3旧版复制的的缺陷分为以下两种情况初次复制:从服务器从来没有复制过任何主服务器,或者从服务器复制当前的主服务和上一次的主服务器不一样,复制工作会很好的进行下来断线后复制:断线后从服务器会再一次进行同步工作,不过从主服务器发来的RDB文件是包括首次同步开始的命令到断连重连成功的命令,这个RDB文件十分大且重复,进行同步时会非常的慢。其实分析可知道我们不需要断连之前的所有命令,只需要断连之后到重连之间的命令对应的RDB原创 2022-06-26 21:55:18 · 307 阅读 · 2 评论 -
Redis设计与实现(三)| 服务器与客户端的交互(事件IO模型)
如下图所示,总计有四部分组成:套接字、多路复用器、文件事件分派器和事件处理器多路复用的工作流程命令请求处理器命令回复处理器整个流程原创 2022-06-26 21:54:26 · 492 阅读 · 1 评论 -
Redis设计与实现(二)| 数据库(删除策略&过期淘汰策略)
1.1 切换数据库概述1.2 数据库键空间概述例子查找(寻址)过程:过期键的判定:惰性删除策略的实现:定期删除策略的实现:LRU 的实现:LFU 的实现:原创 2022-06-26 21:52:11 · 112 阅读 · 0 评论 -
Redis设计与实现(一)| 数据结构 & 对象
记录长度值的两个好处:空间预分配:惰性空间释放:每个节点结构如下:链表的结构如下:总体形象化构成及特点:哈希节点的结构字典的结构3.2 哈希算法概述使用算法:①.分配:为字典的另一个哈希表分配空间,这个分配的空间取决于存储元素的(键值对的数量即属性的值)②.迁移重新hash:将0号表的键值对全部rehash到1号表中,即重新计算哈希值和索引值③.迁移后:迁移迁移完成之后,0号表为空表,释放0号表,将1号设置为0号,并创建一个新的1号表(未分配空间)为下一次迁移做准备①.原创 2022-06-26 21:03:53 · 407 阅读 · 0 评论