自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 问答 (2)
  • 收藏
  • 关注

原创 ElasticSearch 数据读写

Master 节点会维护一个 in-sync group,里面包含所有同步了最新数据的副本,每个分片有一个唯一标识 Allocation ID,如果某分片主副本异常,会从这些分片中选取新的主副本,来保障主副本有最新的数据。数据节点则执行真正的数据读取。通过 Primary Terms 和 Squence Numbers 来校验分布式场景的数据的一致性,以及进行数据的矫正,类似 Raft 的 terms 和 index。ES 一个索引会拆成多个分片,每个分片又有多个副本,对于文档的添加删除都是同步写的。

2022-12-23 15:09:47 1747 2

原创 MIT 6.824 学习(三)【KV Raft】

文章目录一、概述二、实现2.1 KV Server2.2 Get2.3 Put/Append一、概述实验内容来自 MIT 6.824 的 lab3,Lab 3实现的方式主要参考 raft 作者博士论文 论文 的第六章内容。主要内容就是实现这三个 RPC 的的语意ClientRequest RPC:就是追加数据,改变状态的 RPC,就是 Append 函数:根据论文中的描述,需要通过 clientID 以及 sequenceNum 来保证处理的幂等,从而保证一致性。// Put or Ap

2022-05-02 23:11:48 883

原创 MIT 6.824 学习(二)【Raft】

文章目录一、理论1.1 概述1.2 Raft1.2.1 Log Replication1.2.2 leader election二、实验2.1 基础模块2.1.1 Raft 结构体2.1.2 投票 RPC (RequestVote RPC)2.1.3 追加日志 RPC (AppendEntries RPC)2.1.4 节点需要实现的性质2.2 lab2 - A2.3 lab2 - B一、理论内容参考《In search of an Understandable Consensus Algorith

2022-04-10 15:50:34 2214

原创 MIT 6.824 学习(一)【MapReduce】

文章目录1. 理论1.1 概述1.2 执行流程2. 实验2.1 概述2.2 思路1. 理论理论内容来自 Google 论文 MapReduce: Simplified Data Processing on Large Clusters1.1 概述MapReduce是用于处理和生成大型数据集的编程模型和相关实现。我认为主要包括两个部分:MapReduce Framework :帮助实现一些具体流程的封装,包括任务分发、数据 shuffle、错误处理、负载均衡等等细节。用户无需掌握这些细节,更能关

2022-04-04 15:35:42 2291

原创 Linux 系统调用和中断(查漏补缺版)

文章目录一、系统调用1.1 概述1.2 系统调用处理程序二、中断一、系统调用1.1 概述现代操作系统中,内核提供了用户进程与内核进行交互的一组接口,这些接口使得应用程序受限地访问硬件设备,保证系统稳定可靠,避免应用程序肆意妄行。系统调用就是用户空间进程和外围设备之间的中间层,提供系统调用主要有三个作用:给用户进程提供抽象接口,屏蔽底层实现。内核自身通过用户类型权限等做校验,保证系统的稳定安全。为了更好的实现多任务,虚拟内存等内容。而站在程序员的角度,往往又在系统调用之上再封装了一层 AP

2022-02-21 23:16:54 995 2

原创 Linux 进程(查漏补缺版)

文章目录一、概述二、进程管理2.1 进程描述符2.2 进程状态2.3 进程创建2.4 线程实现2.5 进程终结三、进程调度一、概述进程就是处于执行期的程序,通常包括内容:正文段、数据段、打开的文件、挂起的信号、内核内部数据、处理器状态,内存映射的地址空间、执行线程等。线程是进程中活动的对象,每个线程都拥有一个独立的程序计数器、进程栈和一组进程寄存器。对于 Linux 来说,线程就是一种特殊的进程。二、进程管理2.1 进程描述符内核把进程放在任务队列(一个双向循环链表中),链表的每一项,都是一个

2022-02-02 16:50:42 2285 2

原创 RocketMQ 原理浅析

文章目录一、概述二、路由中心 NameServer启动流程路由注册和故障剔除路由发现一、概述RocketMQ 的核心模块主要包括如下几个部分acl:Access Control List,权限控制链表,RocketMQ 的权限控制模块;broker:消息队列的服务器实体,接收客户端请求,处理消息分发,存储消息数据等;client:RocketMQ 的客户端包括消息的生产者和消费者;common:公共包;dev、distribution:一些开发脚本和部署脚本和配置,不多赘述;axampl

2021-12-28 21:31:11 1952

原创 Spring Cloud Alibaba 核心组件解析

文章目录一. Nacos1. 概述2. 服务注册发现实现原理2.1 服务注册心跳检测服务注册总结2.2 服务地址的发现和动态感知地址发现动态感知3. 配置中心实现原理一. Nacos1. 概述对于 Nacos 是什么,有什么用,怎么用,就不再赘述了。官网地址:https://nacos.io/zh-cn/Nacos 系统架构图:主要包括:Provider APP:提供可复用可调用服务的应用。Consumer APP:会对某个服务发起调用的应用方。Name Server:分布式系统中

2021-11-15 22:20:07 1967 5

原创 Netty 读写请求源码分析

文章目录一、ServerBootstrap 启动过程一、ServerBootstrap 启动过程

2021-10-17 16:54:40 327

原创 Netty 核心组件源码剖析

文章目录1、EventLoopGroup1.1 NioEventLoopGroup1.2 NioEventLoop1.2.1 NioEventLoop 开启 Selector1.2.2 NioEventLoop 处理 IO 任务1、EventLoopGroupEventLoopGroup 是一个接口,最终还是来自于 线程池的父接口 Executor。1.1 NioEventLoopGroup平时比较常用的实现类是 NioEventLoopGroup;NioEventLoopGroup 主要做的

2021-10-12 23:34:01 626

原创 MySQL 实战 45 讲笔记

文章目录一、基础篇1. 基础架构2. 日志系统3. 事务隔离4. 索引5. 锁二、实践篇1. 选择普通索引还是唯一索引?一、基础篇1. 基础架构MySQL 基本架构连接器执行MySQL 的连接操作;也可分为长连接和短连接,长连接占用系统资源,短连接频繁建立连接耗时。查询缓存可能之前查询过,则直接在缓存中以 key value 存储;不建议使用,因为缓存命中率低,一旦对应表更新就会刷新缓存;8.0 之后移除该功能。分析器如果没有命中缓存,就进入分析器,进行语法、词法的

2021-10-04 16:45:36 1320

原创 Dubbo 原理浅析到实现一个RPC框架

文章目录一、Dubbo 原理1. 整体架构2. 服务提供方的暴露服务3. 服务消费者方的引用服务4. 调用服务二、实现一个 RPC一、Dubbo 原理一次 RPC 调用的流程:服务消费者方(client)一本地调用的形式调用服务。Client stub,类似于一个代理对象,将调用的方法具体信息(包括调用的类,方法,参数等)封装为一个消息体,通过注册中心找到服务地址,然后将该消息发送到服务端。Server Stub 接受到消息之后,进行解码后传送给服务端,Server 端通过具体信息进行反射调用

2021-09-14 14:57:32 1013

原创 Zookeeper 技术内幕

文章目录一、Zookeeper 核心概念概述二、ZAB 协议1. 消息广播2. 崩溃恢复三、系统模型1. 数据模型2. 节点特性一、Zookeeper 核心概念概述Zookeeper是一个分布式协调服务框架,是一个分布式数据一致性的解决方案。从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。集群角色在分布式系

2021-09-10 16:56:55 389 1

原创 MySQL 技术内幕(五):备份、恢复和集群

文章目录一、主从复制1. 复制的工作原理2. 复制具体操作二、分库分表1. 垂直拆分2. 水平拆分一、主从复制1. 复制的工作原理复制(replication)是 MySQL 数据库提供的一种高可用高性能的解决方案,主要分为以下三步:主服务器(master)把数据更改记录到二进制日志(binlog)中。从服务器(slave)把主服务器的二进制日志(binlog)复制到自己的中继日志(relay log)中(主服务器主动向从服务器发送日志)。从服务器重做中继日志中的日志,把更改应用到自己的数据库

2021-09-05 23:13:09 585

原创 Java 分布式解决方案

文章目录一、基础知识1. CAP理论2. BASE理论一、基础知识1. CAP理论CAP是 Consistency、Availability、Partition tolerance三个词语的缩写,分别表示一致性、可用性、分区容忍性Consistency 一致性一致性是指写操作后的读操作可以读取到最新的数据状态,当数据分布在多个节点上,从任意结点读取到的数据都是最新的状态。Availability 可用性可用性是指任何事务操作都可以得到响应结果,且不会出现响应超时或响应错误。Partitio

2021-09-03 23:03:32 2713 1

原创 Spring 系列总结

文章目录1. Spring IOC & AOP1.1 源码阅读1.2 解决单例的循环依赖2. Spring 事务1. Spring IOC & AOPIOC:(Inverse of Control:控制反转)是一种设计思想,就是将原本在程序中手动创建对象的控制权,交由Spring框架来管理。IoC容器是Spring用来实现IoC的载体,IoC容器实际上就是个Map(key,value),Map中存放的是各种对象。将对象之间的相互依赖关系交给IoC容器来管理,并由IoC容器完成出来对象的

2021-08-30 13:43:25 262

原创 深入 Java 集合框架

文章目录1. HashMap1.1 存储结构1.1.1 Node 结点1.1.2 其他关键字段哈希桶数组初始化容量加载因子和容纳键值对个数默认树化大小1.2 Java 7 HashMap 的主要问题1.3 主要方法实现1.3.1 确定 hash 值 及 哈希桶数组索引1.3.2 put添加方法1.3.3 treeifyBin 树化方法1.3.4 resize 扩容方法2. ConcurrentHashMap3. CopyOnWriteArrayList3.1 add 添加方法3.2 get 获取方法1.

2021-08-23 17:09:42 234

原创 设计模式(三):行为型模式

文章目录1. 模板方法模式(Template Method)行为型模式的关注点是“怎样运行对象/类?”行为型模式用于描述程序在运行时复杂的流程控制,描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性。1. 模板方法模式(Templa

2021-08-22 21:59:08 459

原创 MySQL 技术内幕(四):事务

文章目录1. 分类2. 事务的实现2.1 redo2.2 undo2.2.1 undo log 格式2.2.2 purge2.3 group commit3. 事务的隔离级别4. 不好的事务习惯事务会把数据库从一种一致状态转换为另一种一致性状态。事务的四大特性(ACID):原子性(Atomicity)一个事务操作要么全都成功,要么全部失败,是一个原子性操作。一致性(Consistency)表示一个事务将数据库从一种一致性状态转移为另一种一致性状态。隔离性(Isolaion)事

2021-08-21 19:31:42 858 1

原创 MySQL 技术内幕(三):锁

文章目录1. InnoDB 存储引擎中的锁1.1 锁的类型1.2 一致性非锁定读1.3 一致性锁定读1.4 自增长与锁1.5 外键和锁2. 锁的算法2.1 行锁的三种算法3. 锁问题开发多用户、数据库驱动的应用时,最大的一个难点是:一方面要最大程度地利用数据库的并发访问,另外一方面还要确保每个用户能以一致的方式读取和修改数据。为此就有了锁(locking)的机制。从程序员的角度来说,锁分为两类:悲观锁:顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别

2021-08-21 00:44:40 477 1

原创 MySQL 技术内幕(二):索引

文章目录1. B+ 树索引1.1 聚集索引1.2 辅助索引1.3 索引的分裂1. B+ 树索引在数据库中,B+ 树的高度一般在 2 ~ 4 层,这也就是说查找某一键值对的行记录需要 2 ~ 4 次 IO。数据库中的B+树索引可以分为聚集索引(clustered inex)和辅助索引 ( secondaryindex)6,但是不管是聚集还是辅助的索引,其内部都是B+树的,即高度平衡的,叶子节点存放着所有的数据。聚集索引与辅助索引不同的是,叶子节点存放的是否是一整行的信息。1.1 聚集索引聚集索引(c

2021-08-19 15:45:15 666 2

原创 数据结构与算法(一):红黑树、B树与B+树

文章目录1. AVL 树1.1 AVL 树的左单旋转1.2 AVL 树的右单旋转1.3 AVL 树的双旋转1.4 完整代码和测试2. 多叉树2.1 2-3 树2.2 B 树2.2 B+ 树2.2.1 B+ 树的插入2.2.2 B+ 树的删除3. 红黑树1. AVL 树平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树,可以保证查询效率,且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。

2021-08-17 16:12:18 365 3

原创 MySQL技术内幕(一) InnoDB存储引擎

文章目录1. InnoDB 体系架构1.1 后台线程1.2 内存1.3 Checkpoint 技术1.5 Master Thread 工作方式1. InnoDB 体系架构InnoDB 存储引擎有多个内存块,可以认为这些内存块组成一个大的内存池。后台线程的主要作用是负责刷新内存池中的数据,保证内存池中的内存缓存的是最近的数据是最近的数据,此外将已修改的数据文件刷新到磁盘文件,同时保证在数据库发生异常的轻快下InnoDB能恢复到正常运行状态。简单来说,就是相当于一个小型的操作系统,后台线程相当于CPU,

2021-08-15 16:57:55 1989

原创 Redis 事件

文章目录1. 文件事件1.1 文件事件处理器组件2. 时间事件2.1 serverCron 函数3. 事件的调度与执行Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件:文件事件(file event):Redis服务器通过套接字与客户端(或者其他Redis服务器)进行连接,而文件事件就是服务器对套接字操作的抽象。服务器与客户端(或者其他服务器)的通信会产生相应的文件事件,而服务器则通过监听并处理这些事件来完成一系列网络通信操作。时间事件(time event):Redis服务器中的一些

2021-08-12 21:51:11 180

原创 操作系统(六):网络系统

文章目录1. 零拷贝1.1 DMA 技术2. I/O 多路复用3. Reactor 和 Proactor 模式1. 零拷贝1.1 DMA 技术2. I/O 多路复用3. Reactor 和 Proactor 模式

2021-08-11 14:54:31 905

原创 计算机网络(八):从输入网址到网页显示发生了什么?

文章目录1. URL 解析2. DNS 解析3. TCP 连接4. 发送HTTPS请求5. IP 首部和 MAC 首部1. URL 解析首先浏览器做的第一步操作就是对URL进行解析。以 https://blog.csdn.net/weixin_48922154 为例:先通过该URL检查是否是合法的URL。通过URL检测使用的协议,请求的服务器以及请求的文件。再检查缓存,如果有该内容的浏览器缓存,那么就不需要请求服务器而直接显示页面。否则,就通过解析这些信息之后,使用这些信息生成HTTP请求消息

2021-08-08 11:37:52 1458 3

原创 计算机网络(七):网络安全

文章目录1. 概述2. 机密性2.1 对称密钥密码体制2.2 公开密钥加密(非对称加密)3. 报文完整性和数字签名3.1 报文鉴别码3.2 数字签名1. 概述安全通信需要具有下列特性:机密性:通过加密手段,希望仅有发送发和接收方能够理解传输报文的内容。报文完整性:希望通信内容在传输过程中未被改变或者恶意篡改。端点鉴别:发送方和接收方都应该能证实通信过程所涉及的另一方,以确信通信的另一方确实具有其所声称的身份。运行安全性:通过诸如防火墙和入侵检测系统等运行设备反制对机构网络的攻击。2. 机密

2021-08-06 16:34:05 1123

原创 计算机网络(六):链路层

文章目录1. 概述1. 概述链路层中有两种截然不同的链路层信道:第一种类型是广播信道,这种信道用于连接有线局域网、卫星网和混合光纤同轴电缆接人网中的多台主机。第二种类型的链路层信道是点对点通信链路,这在诸如长距离链路连接的两台路由器之间,或用户办公室计算机与它们所连接的邻近以太网交换机之间等场合经常能够发现。链路层相关术语:运行链路层协议的任何设备均称为节点(node),节点包括主机、路由器、交换机和WiFi接入点。把沿着通信路径连接相邻节点的通信信道称为链路(link)。在通过特定的

2021-08-04 19:25:20 2240

原创 计算机网络(五):网络层

文章目录1. 网络层概述2. IP:网际协议2.1 IP地址2.1.1 IP地址的分类2.1.2 广播和多播2.1.3 子网和子网掩码2.1.4 CIDR与VLSM2.1.5 公有地址和私有地址1. 网络层概述网络层能够被分解为两个相互作用的部分,即数据平面 和 控制平面。数据平面即网络层中每台路由器的功能,该数据平面功能决定到达路由器输入链路之一的数据报,如何转发到该路由器的输出链路之一。控制平面控制平面的功能是控制数据报沿着从源主机到目的主机的端到端路径中路由器之间的路由方式。又

2021-08-02 20:30:55 2795 7

原创 计算机网络(四):传输层

文章目录1. 概述和传输层服务2. UDP:用户数据报协议2.1 UDP 报文段结构传输层位于应用层和网络层之间,是分层的网络体系结构的重要组成部分,该层为运行在不同主机上的应用程序进程提供直接的通信服务起着至关重要的作用。1. 概述和传输层服务传输层协议为运行在不同端系统上的应用进程之间提供逻辑通信(logic communication)功能,应用层进程使用传输层提供的逻辑通信功能而无需考虑实现通信的物理基础设施的细节。传输层协议是在端系统中而不是在路由器中实现的。在发送端,运输层将从发送应用

2021-07-30 11:10:44 1640 1

原创 计算机网络(三):应用层

文章目录1. 应用层协议原理1.1 网络应用程序体系结构1.2 进程通信1.3 可供应用程序使用的运输服务1.4 因特网提供的运输服务1.5 应用层协议2. Web 和 HTTP2.1 概述1. 应用层协议原理1.1 网络应用程序体系结构应用程序体系结构(application architecture) 由应用程序研发者设计,规定了如何在各种端系统上组织该应用程序。客户 — 服务器体系结构(client-server architecture):有一个总是打开的主机称为服务器,它服务于来自许多其

2021-07-26 21:32:39 1738 2

原创 计算机网络(二):HTTP 和 HTTPS

文章目录1. URL 和 URI1.1 统一资源标识符1.2 URL格式2. HTTP报文2.1 报文的组成部分2.1.1 起始行2.1.2 首部2.1.3 实体的主体部分2.2 HTTP 方法2.3 HTTP 状态码3. HTTP 连接3.1 并行连接3.2 持久连接3.2.1 HTTP/1.0+ keep-alive连接3.2.2 HTTP/1.1持久连接3.3 管道化连接3.4 关闭连接的奥秘1. URL 和 URI与 URI(Uniform Resource Identifier,统一资源标识

2021-07-25 19:53:58 3316 9

原创 计算机网络(一):网络基础知识

文章目录1. 什么是因特网1.1 服务描述1.2 协议2. 网络边缘2.1 接入网2.2 物理媒体3. 网络核心3.1 分组交换3.2 电路交换3.3 分组交换与电路交换的对比4. 分组交换网中的时延、丢包和吞吐量5. 协议层次5.1 OSI 参考模型5.2 TCP / IP 参考模型5.3 五层参考模型5.4 封装1. 什么是因特网我们可以从两个角度来回答这个问题:一种是描述组成它的软硬件;另一种是将其视为为分布式应用提供基础服务的联网设施来描述。其实,第一种角度,是从它的组成来描述,第二种角度是从它

2021-07-23 20:39:24 4760 16

原创 设计模式(二)之结构型模式

文章目录1. 适配器模式(Adapter Pattern)2. 桥接模式(Bridge Pattern)3. 装饰器模式(Decorator/Wrapper Pattern)结构型模式主要解决的是组件的定义相关问题。1. 适配器模式(Adapter Pattern)将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,适配器模式分为类结构型模式(继承)和对象结构型模式(组合)两种,前者(继承)类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用

2021-07-22 21:14:59 157 1

原创 现代操作系统(五):死锁

文章目录1. 资源2. 死锁简介2.1 资源死锁的条件2.2 处理死锁的策略3. 鸵鸟算法4. 死锁的检测和死锁恢复5. 避免死锁6. 死锁预防7. 其他问题在计算机系统中很多独占性的资源,在任一时刻它们都只能被一个进程使用。真因为如此,操作系统都授予一个进程(临时)排他地访问某一种资源的能力。在很多应用中,需要进程排他性地访问若干资源而不是一种,当两个进程为了保护两个不同的共享资源⽽使⽤了两个互斥锁,那么这两个互斥锁应⽤不当的时候,可能会造成两个进程程都在等待对⽅释放锁,在没有外⼒的作⽤下,这些进程

2021-07-22 15:48:02 700 1

原创 现代操作系统(四):输入 / 输出

文章目录1. I/O硬件原理1.1 I/O设备1.2 设备控制器1.3 内存映射I/O1.4 直接存储器存取1.5 重温中断2. I/O软件原理2.1 I/O软件的目标2.2 实现I/O3. I/O 软件层次3.1 中断处理程序3.2 设备驱动程序3.3 与设备无关的I/O软件3.4 用户空间的I/O软件4. 盘除了提供抽象(进程、地址空间和文件等)以外,操作系统还要控制计算机的所有I/O设备。操作系统必须向设备发送命令,捕捉中断,并处理设备的各种错误。它还应该在设备和系统的其他部分之间提供简单且易于使用

2021-07-21 19:13:40 861 1

原创 现代操作系统(三):文件系统

文章目录1. 文件2. 目录3. 文件系统的实现3.1 文件系统布局3.2 文件的实现3.3 目录的实现3.4 共享文件3.5 虚拟文件系统4. 文件系统管理和优化4.1 磁盘空间管理4.2 文件系统性能1. 文件文件是进程创建的信息逻辑单元。文件命名:文件是一种抽象机制,提供了一种在磁盘上保存信息而且方便以后读取的方法,抽象机制最重要的特性就是对管理对象的命名,当进程创建文件时,给文件命名,进程终止,文件仍然存在,其他进程通过这个文件名对其访问,圆点后面的成为文件扩展名,通常表示文件的一些信息。

2021-07-19 17:08:24 552

原创 现代操作系统(二):内存管理

文章目录1. 无存储器抽象2. 一种存储器抽象:地址空间2.1 地址空间的概念2.2 交换技术2.3 空闲内存管理3. 虚拟内存3.1 分页3.2 页表3.3 加速分页过程3.4 针对大内存的页表4. 页面置换算法现代操作系统使用分层存储器体系(memory hierarchy),在这个体系中,计算机有若干兆(MB)快速昂贵且易失性的高速缓存(cache),数千兆(GB)速度与建个适中且同样易失性的内存,以及几兆兆低速、廉价、非易失的磁盘存储。操作系统中管理分层存储器体系的部分称为存储管理器(memor

2021-07-18 17:57:47 535

原创 现代操作系统(一):进程与线程

文章目录一、进程用户态和内核态1. 进程模型2. 进程的创建3. 进程的终止4. 进程的层次结构5. 进程的状态6. 进程的实现二、线程1. 线程的使用2. 线程模型1. POSIX线程2. 实现线程一、进程用户态和内核态多数操作系统有两种运行模式:用户态和内核态内核态:这个状态下,操作系统具有对所有硬件的完全访问权,可以执行及其能够运行的任何指令表示一个应用进程执行系统调用后,或 I/O 中断、时钟中断后,进程便处于核心态执行。运行在内核态的程序可以访问的资源多,但可靠性、安全性要求高,维

2021-07-15 11:39:55 836

原创 Redis 事务

文章目录一、概述二、事务的实现1. 事务开始2. 命令入队3. 事务队列4. 执行事务5. 取消事务三、WATCH命令的实现1. 实现四、事务的ACID1. 原子性2. 一致性3. 隔离性4. 持久性一、概述Redis通过MULTI、EXEC、WATCH等命令来实现事务功能,事务提供了一种将多个命令请求打包,然后一次性、按顺序执行多个命令的机制,在事务执行期间,服务器不会中断事务而去执行其他客户端的命令请求,而会在事务执行结束才去处理其他请求以下举例实现一个事务,从MULTI开始到EXEC提交结束交给

2021-07-13 13:47:10 157

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除