# Redis 源码解析实战 ## 简介 Redis 是一个开源的高性能、基于内存的NoSQL数据库,主要用于缓存、队列和实时数据处理。本文将从源码解析实战两个方面,介绍 Redis 的原理和应用。 ## 源码解析 ### 数据结构 Redis 中主要使用了五种数据结构:字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Zset)。其中,哈希表是
原创 5月前
35阅读
文章目录前言一、节点1.节点启动2.集群数据结构3.CLUSTER MEET 命令的实现二、槽指派1.记录节点的槽指派信息2.传播节点的槽指派信息3.记录集群中所有槽的指派信息三、在集群中执行命令四、重新分片总结 前言集群是Redis提供的分布式数据库方案,集群通过分片进行数据共享,并提供复制和故障转移功能一、节点一个 Redis 集群通常由多个节点(node)组成, 在刚开始的时候, 每个节点
       想要分析源码,我觉得可以把它当成一个整体,或者一个函数,有输入和对应的输出。我们从输入开始分析流程。先撇开main函数,在gdb上打印下线程的堆栈是个好想法,让我们看看它都在做什么。       可以看得到它其中一条线程阻塞在epoll_wait(我的系统是ubuntu,因此
环境说明:redis源码版本 5.0.3;我在阅读源码过程做了注释,git地址:https://gitee.com/xiaoangg/redis_annotation 如有错误欢迎指正 目录一.命令请求的执行过程1.客户端发送命令请求2.服务端读取命令请求3.命令执行:查找命令实现4.命令执行:执行预备操作5.命令执行:调用命令实现函数6.命令执行:执行后续工作7.将命令回复发送给客户端一.命令请
最近深入的学习了一下Redis ,在此记录一下 共同学习。 目录一、redis的数据结构和常用命令五种数据结构常用命令1.字符串string常用操作2.哈希hash常用操作3.列表list常用操作4.集合set常用操作5.有序集合zset常用命令其他命令二、redis的持久化1.RDB快照(snapshot)2.AOF(append-only file)3.混合持久化三、redis的主从架构、哨兵
转载 2023-06-21 22:11:23
407阅读
环境说明:redis源码版本 5.0.3;我在阅读源码过程做了注释,git地址:https://gitee.com/xiaoangg/redis_annotation  参考书籍:《redis的设计实现》 目录一 客户端属性1.套接字描述符fd2.客户端名称name3.flags标识4.输入缓冲区querybuf属性5 命令命令参数 argv、argc属性6.命令的实现函数&nbsp
用了这么久的 Redis,也翻了很多次源码,经常有人问我到底怎么读 Redis 源码。一提到读源码,很多人都会比较畏惧,认为读源码是高手才会做的事情。他们可能遇到问题时,会更倾向于去找别人分享的答案。但往往很多时候,自己查到的资料并不能解决所有问题,尤其是比较细节的问题。从我的实战经验来看,遇到这种情况,通常就需要去源码中寻找答案了,因为在源码面前,这些细节会变得「一览无余」。而且我认为,掌握读源
转载 2023-07-13 16:18:51
136阅读
Redis源码分析基于Redis-5.0.4版本,进行基础的源码分析,主要就是分析一些平常使用过程中的内容。仅作为相关内容的学习记录,有关Redis源码学习阅读比较广泛的便是《Redis设计实现》一书,浏览学习该书之后,觉得相关内容还是觉得抽象的高度比较高,故对照着代码再阅读学习一下。Redis的数据结构官网上的数据结构的介绍二进制安全的字符串,二进制安全的意思大家可以自行查阅定义,在redis
转载 2023-09-26 19:40:21
32阅读
很推荐这本书,学习elasticsearch链接:https://pan.baidu.com/s/1pblYSonWAwMb9UmXOofiAg提取码:2esf
.
原创 2022-10-09 14:04:16
263阅读
一、前言前面几篇我们讲了关于 Kafka 的基础架构以及搭建,从这篇开始我们就来源码分析一波。我们这用的 Kafka 版本是 2.7.0,其 Client 端是由 Java 实现,Server 端是由 Scala 来实现的,在使用 Kafka 时,Client 是用户最先接触到的部分,因此,我们从 Client 端开始,会先从 Producer 端开始,今天我们就来对 Producer 源码解析
一. Dubbo源码核心模块dubbo的架构如上图,辅助是注册中心和监控中心,负责接收输入的是Provider(肉),负责输出的是ConsumerRegistry:注册中心。 负责服务地址的注册查找,服务的 Provider 和 Consumer 只在启动时注册中心交互。注册中心通过长连接感知 Provider 的存在,在 Provider 出现宕机的时候,注册中心会立即推送相关事件
Redis是一个广泛使用的开源内存数据结构存储库,可用作数据库、缓存和消息代理。近年来,Redis变得越来越流行,对于开发人员来说,了解其整体架构非常重要。本文将为您提供一份全面的指南,介绍如何快速理解Redis源代码的整体架构。我们将概述Redis源代码及其数据结构、命令处理和内存管理。Redis源码的整体架构Redis的整体架构包括以下几个模块:事件处理模块:Redis使用事件驱动模型,事件处
转载 2023-07-29 15:59:44
75阅读
看了黄建宏老师的《Redis设计实现》,对redis的部分实现有了一个简明的认识;之前面试的时候被问到了这部分的内容,没有关注,好在还有时间,就把Redis源码看了一遍。Redis源码的获取Redis是完全开源的,其源代码可以在直接在GitHub上获取:https://github.com/antirez/redis(目前的版本是4.4.0)。此时,进入解压后的redis目录下的src文件夹,
转载 2023-06-29 10:35:16
128阅读
Redis 网络通信模块源码分析gdb不会用的先学下gdbredis源码安装和编译 wget http://download.redis.io/releases/redis-2.8.17.tar.gz //可以下载新的 tar zxvf redis-2.8.17.tar.gz cd redis-2.8.17 make -j 4 编译成功后,会在 src 目录下生成多个可执行程序,其中 re
转载 2023-05-25 11:40:09
182阅读
当你的应用发布后第二天却发现一个重要的bug要修复,头疼的同时你可能想
转载 2022-08-15 19:51:05
131阅读
前言本篇系统介绍Kafka的实现原理和应用方法,并介绍Kafka的运维工具、客户端编程方法和第三方集成方式,深入浅出、图文并茂、分析透彻。本篇将从初学者的角度出发,循序渐进地讲解Kafka内部的实现原理,但是由于Kafka是基于Scala语言编写的,因此为了更好地阅读本篇,希望读者对于Scala语言有大致的了解。 阅读指南本篇将从Kafka的内部实现原理、运维工具、客户端编程以及实际应
&emsp;6.3、Elasticsearch源码解析优化实战笔记(<https://chbxw.blog.csdn.net/article/details/86771501)&emsp;&emsp;第1章走进Elasticsearch&emsp;&emsp;第2章准备编译和调试环境&emsp;&emsp;第3章:集群启动流程&emsp;&emsp;第4章:节点启动和关闭&emsp;&emsp;
原创 2021-10-08 16:19:54
10000+阅读
1评论
相信使用过 Kafka 的朋友都知道其吞吐量可以高达百万,但很少人理解其中的设计原理。认真读完这篇文章,你会对Kafka Broker请求处理流程和网络架构设计实现细节,有更加深刻的理解。开篇三问: Kafka Broker 端网络架构和请求处理到底是使用了哪些高大上的技术?它到底解决了什么问题?究竟是怎么解决的?只有了解了这些, 我们才能深刻掌握 Kafka 服务端设计精髓所在,更加深刻理解一个
此文章已于 9:36:45 2020/10/15 发布到将军上座2.1 数据结构 Redis 3.2之前的SDS struct sds { int len;// buf 中已占用字节数 int free;// buf 中剩余可用字节数 char buf[];// 数据空间 }; sdshdr5结构在Redis5.0中,我们用如下结构来存储长度小于32的短字符串:struct __attr
前言:百度一搜能找到很多讲APP启动流程的,但是往往要么就是太老旧(还是基于android6去分析的),要么就是不全(往往只讲了整个流程的一小部分)。所以我结合网上现有的文章,以及源码的阅读和调试,耗费了3整天的时间,力求写出一篇最完整,最详细,最通俗易懂的文章,来讲清楚在android上,APP是如何启动的。 该文属于安卓源码探究专栏中的文章,专栏中很多类似源码分析的文章,欢迎大家阅读
  • 1
  • 2
  • 3
  • 4
  • 5