Redis核心原理与实践--Redis启动过程源码分析

2021-10-28
阅读 9 分钟
2.6k
该命令启动Redis服务,并指定了配置文件/path/to/redis.conf,给出了两个启动配置项:port、protected-mode。
封面图

Redis核心原理与实践--散列类型与字典结构实现原理

2021-09-27
阅读 9 分钟
1.5k
Redis通常使用字典结构存储用户散列数据。 字典是Redis的重要数据结构。除了散列类型,Redis数据库也使用了字典结构。 Redis使用Hash表实现字典结构。分析Hash表,我们通常关注以下几个问题: (1)使用什么Hash算法? (2)Hash冲突如何解决? (3)Hash表如何扩容?
封面图

Redis核心原理与实践--列表实现原理之quicklist结构

2021-09-19
阅读 6 分钟
961
在上一篇文章《Redis列表实现原理之ziplist结构》,我们分析了ziplist结构如何使用一块完整的内存存储列表数据。同时也提出了一个问题:如果链表很长,ziplist中每次插入或删除节点时都需要进行大量的内存拷贝,这个性能是无法接受的。本文分析quicklist结构如何解决这个问题,并实现Redis的列表类型。
封面图

Redis核心原理与实践--列表实现原理之ziplist结构

2021-09-12
阅读 11 分钟
1.9k
Redis内部使用该链表保存运行数据,如主服务下所有的从服务器信息。 但Redis并不使用该链表保存用户列表数据,因为它对内存管理不够友好: (1)链表中每一个节点都占用独立的一块内存,导致内存碎片过多。 (2)链表节点中前后节点指针占用过多的额外内存。 读者可以思考一下,用什么结构可以比较好地解决上面的两个问...
封面图

Redis核心原理与实践--字符串实现原理

2021-09-05
阅读 9 分钟
2.8k
Redis中的数据对象server.h/redisObject是Redis对内部存储的数据定义的抽象类型,在深入分析Redis数据类型前,我们先了解redisObject,它的定义如下:
封面图

Netty源码解析 -- 内存对齐类SizeClasses

2020-10-30
阅读 13 分钟
1.2k
在学习Netty内存池之前,我们先了解一下Netty的内存对齐类SizeClasses,它为Netty内存池中的内存块提供大小对齐,索引计算等服务方法。源码分析基于Netty 4.1.52

Netty源码解析 -- 客户端启动过程

2020-10-15
阅读 5 分钟
1.4k
客户端启动过程比较简单,主要是Connect操作。Netty客户端启动引导类是Bootstrap,同样继承了AbstractBootstrap,它只有一个EventLoopGroup,下文称为ConnectGroup。

SpringBoot源码解析 -- Logging,Environment启动

2020-06-07
阅读 10 分钟
2.3k
如果大家在使用SpringBoot过程中,遇到日志配置无效,Environment中获取属性错误,希望本文可以给你们一个解决问题的思路。源码分析基于spring boot 2.1

SpringBoot源码解析 -- Tomcat,SpringMVC启动

2020-05-27
阅读 6 分钟
2.3k
本文通过阅读SpringBoot源码,分享SpringBoot中Tomcat,SpringMvc组件的启动过程。源码分析基于spring boot 2.1

SpringBoot源码解析 -- @Value,@Autowired实现原理

2020-05-23
阅读 10 分钟
2.8k
前面解析@ComponentScan实现原理的文章说了,Spring如何扫描@Component注解的Bean,但扫描的Bean如何注入属性呢?我们都知道该功能主要使用@Value,@Autowired注解完成,这篇文章主要解析Spring中@Value,@Autowired实现原理。源码分析基于spring boot 2.1

SpringBoot源码解析 -- @ComponentScan的实现原理

2020-05-21
阅读 7 分钟
3.3k
上一篇解析SpringBoot AutoConfigure功能的文章说过,ConfigurationClassParser#doProcessConfigurationClass方法很重要,处理@Component,@PropertySources,@ComponentScans,@Import,@ImportResource等注解。现在来看一下@ComponentScans注解的处理。源码分析基于spring boot 2.1

SpringBoot源码解析 -- AutoConfigure的实现原理

2020-05-16
阅读 13 分钟
2.9k
这里起作用的实际上是@Import和AutoConfigurationImportSelector。@Import注解非常重要,它是SpringBoot中AutoConfiguration功能的基础。

SpringBoot源码解析 -- SpringBoot启动过程

2020-05-13
阅读 11 分钟
1.7k
源码分析基于spring boot 2.1 本文通过阅读源码,分析SpringBoot的启动过程。 先看一个例子 {代码...} 例子很简单,本文主要关注三个问题 SpringApplication#run方法的作用 SpringApplication#run方法中MyApplication.class参数的作用 SpringApplication#run方法中args参数的作用 SpringApplication#run {代码...} 先构...

Spring源码解析 -- SpringMvc原理

2020-05-08
阅读 12 分钟
2k
源码分析基于spring 4.3.x本文通过阅读Spring MVC的源码,解析Spring MVC实现原理。本文不会深入SpringMvc的细节,关注于分析SpringMvc的各个核心组件以及主要逻辑,以便大家深入SpringMvc以及排查问题。

Spring源码解析 -- AOP原理(2)

2020-05-04
阅读 11 分钟
2.3k
源码分析基于spring 4.3.x本文承接上一篇文章对Spring AOP的分析,继续分析spring如何对AOP中多个通知进行链式调用的。关于阅读源码的思路,可参考 -- 如何阅读java源码

Spring源码解析 -- AOP原理(1)

2020-05-03
阅读 13 分钟
2.4k
源码分析基于spring 4.3.x本文通过阅读Spring源码,分析Spring AOP的功能是如何实现的。关于阅读源码的思路,可参考 -- 如何阅读java源码

spring源码解析 -- Spring Context

2020-05-03
阅读 14 分钟
2.4k
前面解析spring构造bean过程的文章说过时,spring会查找上下文中用户定义的BeanPostProcessor并进行相应操作,那么这些扩展的BeanPostProcessor是怎样进入spring的呢?这里就要说到Spring Context模块了。

spring源码解析 -- 注入属性

2020-05-01
阅读 12 分钟
2k
在解析spring读取xml配置的文章说过,spring会将xml属性配置信息转化为spring内部的表示类,并结合属性name,type等元数据构造PropertyValue,存放在BeanDefinition#propertyValues。而在解析spring构造bean的文章中说过,spring注入属性的方法在AbstractAutowireCapableBeanFactory#populateBean

spring源码解析 -- 构造bean

2020-04-27
阅读 13 分钟
1.4k
前面文章已经分析了spring如何加载xml配置中的bean元数据,现在来分析一下spring构造bean的过程。关于阅读源码的思路,可参考 -- 如何阅读java源码

Spring源码解析 -- 读取bean元数据

2020-04-27
阅读 12 分钟
1.4k
Spring源码解析 -- 读取bean元数据 spring源码解析 -- 构造bean spring源码解析 -- 注入属性 spring源码解析 -- Spring Context Spring源码解析 -- AOP原理(1) Spring源码解析 -- AOP原理(2) Spring源码解析 -- SpringMvc原理 源码分析基于spring 4.3.x 本文通过阅读源码,分析spring如何读取xml配置中的bean元数据。关...