redis 网络流程图 <一>

本来一直想好好读下redis源码。可是每次读了一点就不读了。  主要是没坚持每天都读。 隔几天看。就忘记前面的流程。就越来越不想看了。  很是蛋疼。这个还是要坚持读完的。打算这段时间都源码的时候。都大概用代码流程图纪录下自己看到的内容。  这样自己梳理起来也比较清晰。 还有觉得自己看源码有点问题。  总是要一行一行的看懂才去看下一行。经常纠结为什么这个值默认是5,这里非要除以18 等等。。。。  发觉真没必要。  先看整体框架。理解作者的思想。然后看大体的流程。最后才是看具体细节实现。  这样看到后面具体实现的时候 就会豁然开朗。

很多笔记都是  粘贴到有道笔记本里。  打算慢慢梳理出来。  不过大多都是粘贴复制的。  没多少自己的东西。  果然还是吸收的太少。  输入的也少。把这些都写成博客,可以很先很简单,慢慢来。  输出自己学到的东西。  只有输出。才能够理解的更快、理解的更深

先上图 不废话。 redis的源码解析文章已经很多了。我就不粘贴复制了。  主要是梳理下自己看到的流程。

看图,先梳理下简单的网络部分

时间: 2024-10-20 05:05:07

redis 网络流程图 <一>的相关文章

用Netty解析Redis网络协议

用Netty解析Redis网络协议 根据Redis官方文档的介绍,学习了一下Redis网络通信协议.然后偶然在GitHub上发现了个用Netty实现的Redis服务器,很有趣,于是就动手实现了一下! 1.RESP协议 Redis的客户端与服务端采用一种叫做 RESP(REdis Serialization Protocol)的网络通信协议交换数据.RESP的设计权衡了实现简单.解析快速.人类可读这三个因素.Redis客户端通过RESP序列化整数.字符串.数据等数据类型,发送字符串数组表示参数的命

第10课:[实战] Redis 网络通信模块源码分析(3)

redis-server 接收到客户端的第一条命令 redis-cli 给 redis-server 发送的第一条数据是 *1\r\n\$7\r\nCOMMAND\r\n .我们来看下对于这条数据如何处理,单步调试一下 readQueryFromClient 调用 read 函数收取完数据,接着继续处理 c→querybuf 的代码即可.经实际跟踪调试,调用的是 processInputBuffer 函数,位于 networking.c 文件中: /* This function is call

豆瓣Redis解决方案Codis源码剖析:Proxy代理

豆瓣Redis解决方案Codis源码剖析:Proxy代理 1.预备知识 1.1 Codis Codis就不详细说了,摘抄一下GitHub上的一些项目描述: Codis is a proxy based high performance Redis cluster solution written in Go/C, an alternative to Twemproxy. It supports multiple stateless proxy with multiple redis instan

redis AOF保存机制

网上说AOF有三种保存方式,不自动保存.每秒自动保存.每命令自动保存. 其中每秒自动保存这个看起来很美好,但是可能会被各种IO的时间所延迟,所以究竟是怎么判断每秒保存的,并不是太明白,故有此文. AOF 命令同步 Redis 将所有对数据库进行过写入的命令(及其参数)记录到 AOF 文件, 以此达到记录数据库状态的目的, 为了方便起见, 我们称呼这种记录过程为同步. 举个例子, 如果执行以下命令: redis> RPUSH list 1 2 3 4 (integer) 4 redis> LRA

Windows下搭建Redis集群

Redis集群:运行多个Redis实例,然后通过特定的工具,将这些实例以某种关系连接起来,形成一个Redis网络. 详细的内容可以阅读:Redis 集群教程 里面会详细介绍Redis集群的设计思想和内部结构,以及如何搭建Redis集群等. 本文主要讲述如何在Windows系统下快速搭建Redis集群: 1.下载Redis 其GitHub连接如下:https://github.com/MSOpenTech/redis/releases/ Redis提供msi和zip格式的下载文件,这里下载zip格

深入Redis内部-Redis 源码讲解(转)

Redis作为 NoSQL 数据库的杰出代表,一直广受关注,其轻量级的敏捷架构,向来有存储中的瑞士军刀之称.下面推荐的一篇文章,从源码的角度讲解了Redis 的整个工作流程,是了解 Redis 流程的绝佳文章.英文的,想搞懂还是要花些时间的 原文链接:Redis: under the hood 目录: Startup Beginning global server state initialization Setting up command table Loading config file

Redis源码-事件库

网上看了很多Redis事件库的解读,自己也研究了好几遍,还是记录下来,虽然水平有限,但是进步总会是有的 网络事件库封装了Epoll的操作(当然是指Linux下的多路复用了),并且实现一个定时器,定时器也是服务端程序的基石,很多问题都需要靠定时器解决 (一)数据结构+算法构成一个完整的程序,要一窥Redis网络库,需要先从数据结构开始学习 1.整个事件循环是用一个全局的数据结构描述的,aeEventLoop /* State of an event based program */ typedef

Redis 存储机制

Redis存储机制分成两种Snapshot和AOF.无论是那种机制,Redis都是将数据存储在内存中. Snapshot工作原理: 是将数据先存储在内存,然后当数据累计达到某些设定的伐值的时候,就会触发一次DUMP操作,将变化的数据一次性写入数据文件(RDB文件). AOF 工作原理: 是将数据也是先存在内存,但是在存储的时候会使用调用fsync来完成对本次写操作的日志记录,这个日志揭露文件其实是一个基于Redis网络交互协议的文本文件.AOF调用fsync也不是说全部都是无阻塞的,在某些系统上

C 调用redis缓冲

下载 redis 文件, 进行编译 wget https://github.com/redis/hiredis/archive/master.zip 将其解压, 并编译 unzip -x  master.zip make && make install 加载进行简单测试: redis-server 加载redis.conf  配置文件 发现c程序执行命令为 get foo   ;; 可以将redid-cli  连接进入  keys * ; set foo 12 发现程序运行之后 取出数据