道阻且长,行则将至

Scroll Down

网络通信 - IO多路复用

概述IO多路复用简单来说就是,单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力,IO多路复用解决的本质问题是用更少的资源完成更多的事。需要说明的是,处理IO多路复用的问题需要操作系统提供内核级别的支持,操作系统充当观察者的角色。本篇文章我们就来分析IO多路复用底层实现原理,我们以 L

Redis设计与实现-复制

概述在Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项,让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则称为从服务器(slave)。假设现在有两个Redis服务器,地址分别为127.0.0

Redis设计与实现-客户端

概述Redis服务是典型的一对多服务器程序:一个服务器可以与多个客户端建立网络连接,每个客户端可以向服务器发送命令请求,而服务器则接收并处理客户端发送的命令请求,并向客户端返回命令回复。通过使用IO多路复用技术实现的文件事件处理器,Redis服务器使用单线程单进程的方式来处理命令请求,并与多个客户端

Redis设计与实现-事件

概述Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件:1、文件事件(file event):Redis服务器通过对套接字与客户端(或者其他Redis服务器)进行连接,而文件事件就是服务器对套接字操作的抽象。服务器与客户端(或者其他服务器)的通信会产生相应的文件事件,而服务器则通过监听并

Redis设计与实现-AOF持久化

概述除了RDB持久化功能之外,Redis还提供了AOF(Append Only File)持久化功能。与RDB持久化通过保存数据库中的键值对来记录数据库状态不同,AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的。举个例子,如果我们对空白的数据库执行以下命令,那么数据库中将包含三

设计模式原则

单一职责原则(SRP)概念单一职责原则的英文是 Single Responsibility Principle,缩写为 SRP。这个原则的英文描述是这样的:A class or module should have a single responsibility。翻译成中文就是:一个类或者模块只负责

Spring事务执行基本原理

一个Bean在执行Bean的创建生命周期时,会经过InfrastructureAdvisorAutoProxyCreator的初始化后的方法,会判断当前Bean对象是否和BeanFactoryTransactionAttributeSourceAdvisor匹配,匹配逻辑为判断该Bean的类上是否存

Mybatis-binding模块

在看binding模块之前首先要想好下面三点:1、binding模块存在的目的是什么?解决了什么问题?2、binding模块有哪些必须要的步骤(关键点)?3、binding模块与ibatis是怎么衔接的?

模板方法模式

概述在程序开发过程中,经常会遇到这种情况:某个方法要实现算法需要多个步骤,但其中有一些步骤是固定不变的,而另一些步骤则是不固定的。为了提高代码的可扩展性和可维护性,模板方法模式在这种场景下就派上了用场。在模板方法中,一个算法可以分为多个步骤,这些步骤的执行次序在一个被称为模板方法中定义,而算法的每个