MySQL索引背后的数据结构及算法原理一、定义索引定义:索引(Index)是帮助MySQL高效获取数据的数据结构。本质:索引是数据结构。二、B-Treem阶B-Tree满足以下条件:1、每个节点至多可以拥有m棵子树。2、根节点,只有至少有2个节点(要么极端情况,就是一棵树就一个根节点,单细胞生物,即是根,也是叶,也是树)。3、非根非叶的节点至少有的Ceil(m/2)个子树(Ceil表示向上取整,如
转载 2023-06-29 10:30:28
84阅读
MongoDB底层设计 MongoDB是一个开源的文档型NoSQL数据库。它以JSON格式存储数据,并使用BSON(Binary JSON)作为数据交互的格式。作为一种分布式数据库,MongoDB的底层设计非常复杂,涉及到数据的存储、查询、索引和分片等多个方面。本文将介绍MongoDB的底层设计原理以及相关的代码示例。 ## 数据存储 在MongoDB中,数据以文档(document)的形式
原创 2024-02-06 04:04:29
51阅读
前言最近看了相关的Redis设计核心相关的书籍,对Redis有了一些小的认识,然后自己也做一些产出加深映象,我会从几个方面去总结Redis设计的核心内容:Redis底层数据结构总结、Redis高性能由哪些基础支撑、Redis应用场景、那些有趣的功能。概述 本篇主要内容是Redis底层数据结构总结。Redis供用户直接使用的数据结构有String、List、Set、Zset、Hash等结构
转自 | 羽林君 在底层代码编写中,初始的框架设计总会面临选择,针对实际的硬件使用环境,大家对于使用的软件框架有很多选择,今天我简单描述一些比较常用的架构,让大家能够理解并选择合适的架构。 总述1. 简单的顺序执行程序:这类写法是大多数人使用的方法,不需用思考程序的具体架构,直接按照执行顺序编写应用程序即可。 2.前后台执行程序:在顺序执行的情况上增添中
转载 2023-10-17 13:10:54
86阅读
学会架构的意义现在已经有大量的软件开发框架可供我们选用,为什么还要花时间精力去学习架构? 这里我说明两点:其一,任何框架只能是适用大部分场景,要记住框架是适应一系列软件开发的,而不是专为你开发的软件所用。造汽车的技术框架就不再适合造船艇,更不适合造飞机。一样的道理,如果不了解框架的架构思路,就很可能在出了严重问题时束手无策。其二,框架本身也是要更新维护的,由于硬件技术在不断发展创新,软件功能也越发
5.1 数据库  5.1.1 数据库的结构:  Redis 中的每个数据库,都由一个redis.h/redisDb 结构表示:typedef struct redisDb { // 保存着数据库以整数表示的号码 int id; // 保存着数据库中的所有键值对数据 // 这个属性也被称为键空间(key space) dict *dict; // 保存着键的过期信息 dict *expires; /
 动态应用,是相对于网站静态内容而言, 是指以c/c++、php、Java、perl、.net等 服务器端语言开发的网络应用软件,比如论坛、网络相册、交友、BLOG等常见应用。动态应用系统通 常与数据库系统、缓存系统、分布式存储系统等密不可分。大型动态应用系统平台主要是针对于大流 量、高并发网站建立的底层系统架构。大型网站的运行需要一个可靠、安全、可扩展、易维护的应用系统平台做为支撑,以
计算机网络:通信–>信息和服务共享互联网:是由全世界千千万万台计算机通过tcp/ip协议相互连接而成的世界上最大的网络。协议关键因素:语法 : 数据格式和信号电平语义:协调用的控制信息和差错管理规则:时序控制,速率匹配和定时 通信协议: 层次性网络的体系结构:指计算机网络的各层及其协议的集合(5层)应用层: 运输层: 计算机通信传输的由“0”和“1”构成二进制数据组成帧。帧至少64个字节。
RxJava 使用及思想1RxJava模式与原理2RxJava线程切换与自定义操作符3    标准的观察者设计模式 抽象被观察者和抽象观察者, 一个具体的被观察者和多个具体观察者,被观察者中有一个容器,包含了所有的观察者,当被观察发生变化,可以遍历自己的容器发送通知给所有观察者 Rxjava模式为不标准的观察者设计模式,一个起
转载 2023-10-10 20:09:55
89阅读
 一、Tomcat顶层架构先上一张Tomcat的顶层结构图(图A),如下:Tomcat中最顶层的容器是Server,代表着整个服务器,从上图中可以看出,一个Server可以包含至少一个Service,用于具体提供服务。Service主要包含两个部分:Connector和Container。从上图中可以看出 Tomcat 的心脏就是这两个组件,他们的作用如下:1、Connector用于处理
描述PLC底层,实际就是单片机在运行,它只不过是基于单片机的基础,开发出来的一款二次应用的工业逻辑控制器,方便具有电工思维的用户来使用,所以PLC对比单片机的最大优势就是简单易用。PLC既然是基于单片机来开发的,PLC所有功能,单片机肯定可以都做到,比如一些计时,计数,中断,模拟量处理,通讯,逻辑控制,这些单片机都可以实现,而且响应速度上比PLC还要快很多,精度也会比PLC高。但是PLC使用了扫描
 1.General下图是网口结构简图。网口由CPU、MAC和PHY三部分组成。DMA控制器通常属于CPU的一部分,用虚线放在这里是为了表示DMA控制器可能会参与到网口数据传输中。对于上述的三部分,并不一定都是独立的芯片,根据组合形式,可分为下列几种类型:  方案一:CPU集成MAC与PHY;  方案二:CPU集成MAC,PHY采用独立芯片;  方案三:CPU不集成MAC与PHY,MAC
转载 2024-09-17 15:18:21
78阅读
底层设计剖析(不断更新)转载请注明出处:://jzgwind./?p=469 by joey最近研究的底层架构,试图去通过一个合理的逻辑去思考要完成一套能达成共识的需要...
转载 2019-04-18 09:34:00
445阅读
最近在读黄健宏的《Redis设计与实现》,看完了第一部分,它是采用的自底向上的介绍方法。从最底层的数据结构开始,逐个介绍所用到的数据结构,最后形成数据库。我准备做个redis的学习笔记,这里我就自顶向下整理一下。服务器中的数据库redis服务器将所有数据库保存在服务器状态redis.h/redisServer结构的db数组中,db数组中的每项都是一个redis.h/redisDb的结构体,每个re
一、电商系统架构演进1、单一应用架构当网站规模很小时,采用单一应用框架,把所有的服务集中在一个应用中,但随着网站规模增大,单一应用框架会越来越难维护。2、垂直应用架构把应用垂直的拆分开来,拆分成如支付、查询等垂直模块,每个模块都有从顶层显示层到底层数据持久层的业务逻辑,每个模块都是一个独立的子系统。虽然在一定程度上降低了开发成本和维护成本,但是会导致许多底层业务逻辑代码的重复。3、分布式应用架构把
简介:很多人在进行网络请求的时候,都是直接请求网络数据,然后每次都自己手动解析数据,判断接口类别,然后再进行下一个步骤,但是其实请求网络数据有很多共性的东西,例如存储请求参数的统一性、后台返回的数据类型统一性、sessionId 过期处理统一性等。(总结《App研发录》第二章(Android 网络底层框架设计))目录:1.网络底层封装2.App 数据缓存设计3.用户登录4.HTTP 头中的奥妙网络
为什么说,MapReduce系统架构,颠覆了互联网分层架构的本质?下图是一个典型的,互联网分层架构:客户端层:典型调用方是浏览器browser或者手机APP 站点应用层:实现核心业务逻辑,从下游获取数据,对上游返回html或者json 服务层:业务服务,数据服务,基础服务,对上游提供友好的RPC接口数据缓存层:缓存加速访问存储数据固化层:数据库固化数据存储 同一个层次的内部,例如端上的A
转载 2023-09-22 11:10:30
132阅读
低代码平台底层协议设计 1. 核心协议架构 1.1 协议分层设计 // 低代码平台协议栈 interface LowCcolStack { // 1. 传输层协议 transport: TransportProtocol; // 2. 数据描述协议 schema: SchemaPro ...
转载 17天前
345阅读
学习Spring系列,永远离不开的就是IoC控制反转和AOP面向切面编程,并且在其中充满了设计模式的魅力. 之前面试也被问到过,简单的理解过程是不够的,败在了理解源码上面,为了今后的学习,想用源码去理解一下到底什么IoC和AOP。首先是IoC,所谓控制反转,就是把原先我们代码里面需要实现的对象创建、依赖的代码,反转给容器来帮忙实现。那么必然的我们需要创建一个容器,同时需要一种描述来让容器知道需要创
简介: 设计模式是开发同学经常聊到的话题,也经常被用到实际的开发项目中,熟练的人可以做到信手拈来,不熟悉的人陷入苦思冥想中。笔者认为,不仅仅要掌握设计模式的用法,更要洞察设计模式的底层逻辑,只有那样,才能做到遇到实际的问题可以使用合适的设计模式去解决。 作者 | 不拔来源 | 阿里技术公众号 设计
转载 2021-04-20 15:39:00
65阅读
  • 1
  • 2
  • 3
  • 4
  • 5