定义在分层网络结构中,PDU 是指对等层次之间传递的数据单位,由协议特定的控制信息和用户数据组成。在 OSI 模型中的体现物理层:PDU 是比特(bit),即 0 和 1 的二进制数据流,物理层将这些比特流通过物理介质进行传输。数据链路层:PDU 是数据帧(frame),数据帧包含了数据链路层的头部......
每日一句 (2025-01-18)
OSI 七层模型,即开放式系统互联通信参考模型(Open System Interconnection Reference Model),是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架。以下是对其的详细介绍:概述目的:为了实现不同厂商的设备之间的互操作性,为网络......
在Linux系统中,虚拟内存(也称为交换空间或Swap)是一种重要的资源管理技术。当物理内存不足时,操作系统可以将一部分硬盘空间作为虚拟内存来使用,从而扩展可用的内存总量。虚拟内存可以提高系统的稳定性和性能,尤其是在内存密集型的应用场景下。下面是一些关于如何在Linux中使用虚拟内存的基本操作:查看......
CSS 的 position 属性用于控制元素的定位方式,它有五种主要的值,每一种都决定了元素如何在页面上定位:static:这是position的默认值。元素按照标准文档流进行布局,即按照源代码中的顺序自然排列。设置top,right,bottom, 和left属性不会影响元素的位置。relati......
Shell 介绍通过编写 Shell 命令发送给 linux 内核去执行, 操作就是计算机硬件. 所以 Shell 命令是用户操作计算机硬件的桥梁。Shell 是命令, 类似于 windows 系统 Dos 命令Shell 是一个门程序设计语言, Shell 里面含有变量, 函数, 逻辑控制语句等等......
聚集索引选取规则: 如果存在主键,主键索引就是聚集索引。 如果不存在主键,将使用第一个唯一(UNIQUE)索引作为聚集索引。 如果表没有主键,或没有合适的唯一索引,则InnoDB会自动生成一个rowid作为隐藏的聚集索引。回表查询回表查询是数据库查询中的一个概念,通常用于描述通过二级索引查找到主键(......
索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构(B+树),这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。数据结构对比MySQL默认使用的索引底层数据结构是B+树。......
方案一:开源工具调试工具:Arthas运维工具:Prometheus 、Skywalking方案二:MySQL自带慢日志慢查询日志记录了所有执行时间超过指定参数(long_query_time,单位:秒,默认10秒)的所有SQL语句的日志如果要开启慢查询日志,需要在MySQL的配置文件(/etc/m......
Redis是单线程的,但是为什么还那么快? Redis是纯内存操作,执行速度非常快 采用单线程,避免不必要的上下文切换可竞争条件,多线程还要考虑线程安全问题 使用I/O多路复用模型,非阻塞IO能解释一下I/O多路复用模型?Redis是纯内存操作,执行速度非常快,它的性能瓶颈是网络延迟而不是执行......
主从复制单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离。主从数据同步原理主从全量同步:Replication Id:简称replid,是数据集的标记,id一致则说明是同一数据集。每一个master都有唯一的replid,slave则会继承ma......
了解分布式锁,我们举个常见例子,一个抢券场景。上面代码在单线程执行,或者多线程依次执行都没有问题。但是如果两个线程并发,就有可能会出现问题。如下图所示,假设库存只剩一个,两个线程都查出剩余优惠券但是两个线程还没有运行到扣减库存的那一步,这个时候两个线程都认为还有库存,都会执行扣减库存操作,就会出现问......
数据的淘汰策略:当Redis中的内存不够用时,此时在向Redis中添加新的key,那么Redis就会按照某一种规则将内存中的数据删除掉,这种数据的删除规则被称之为内存的淘汰策略。Redis支持8种不同策略来选择要删除的key:noeviction: 不淘汰任何key,但是内存满时不允许写入新数据,默......
Redis数据删除策略-惰性删除惰性删除:设置该key过期时间后,我们不去管它,当需要该key时,我们在检查其是否过期,如果过期,我们就删掉它,反之返回该key优点 :对CPU友好,只会在使用该key时才会进行过期检查,对于很多用不到的key不用浪费时间进行过期检查缺点 :对内存不友好,如果一个ke......
RDBRDB全称Redis Database Backup file(Redis数据备份文件),也被叫做Redis数据快照。简单来说就是把内存中的所有数据都记录到磁盘中。当Redis实例故障重启后,从磁盘读取快照文件,恢复数据主动备份Redis内部有触发RDB的机制,可以在redis.conf文件中......
双写一致性:当修改了数据库的数据也要同时更新缓存的数据,缓存和数据库的数据要保持一致读操作:缓存命中,直接返回;缓存未命中查询数据库,写入缓存,设定超时时间写操作:延迟双删先删除缓存,再操作数据库正常情况:会出现脏数据情况:先操作数据库,再删除缓存正常情况脏数据情况:如上图所示,无论是先删除Redi......
缓存穿透缓存穿透:查询一个不存在的数据,mysql查询不到数据也不会直接写入缓存,就会导致每次请求都查数据库例:一个get请求:api/news/getById/1解决方案一:缓存空数据,查询返回的数据为空,仍把这个空结果进行缓存优点:简单缺点:消耗内存,可能会发生不一致的问题解决方案二:布隆过滤器......
什么是类加载器⚫ 类加载器(ClassLoader)是Java虚拟机提供给应用程序去实现获取类和接口字节码数据的技术。类加载器只参与加载过程中的字节码获取并加载到内存这一部分类加载器的分类类加载器分为两类,一类是Java代码中实现的,一类是Java虚拟机底层源码实现的。⚫ 类加载器的设计JDK8和8......
类的生命周期类的生命周期描述了一个类加载、使用、卸载的整个过程类的生命周期-加载阶段1、加载(Loading)阶段第一步是类加载器根据类的全限定名通过不同的渠道以二进制流的方式获取字节码信息。程序员可以使用Java代码拓展的不同的渠道。2、类加载器在加载完类之后,Java虚拟机会将字节码中的信息保存......