自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(140)
  • 收藏
  • 关注

原创 力扣刷题-86.分隔链表

存储节点,空间复杂度为 O (n),链表题的最优解通常要求 O (1) 空间,可通过。仅声明了指针,但未初始化,此时。(大概率是 0x0,即空指针)。拼接链表后,最后一个节点的。

2026-02-12 13:53:44 408

原创 力扣刷题-61.旋转链表

链表操作核心原则修改链表结构需操作「前驱节点」,而非节点本身;值传递的指针无法修改外部变量,需用引用传递或返回值更新;所有访问ptr->next的操作,必须先判断ptr非空。三次反转法优势时间复杂度 O (n):仅遍历链表常数次(计算长度 1 次 + 三次反转各 1 次);空间复杂度 O (1):仅使用常数个指针,无额外空间开销;逻辑可复用:反转区间的函数可直接用于其他链表反转问题(如反转指定区间、反转链表前 n 个节点)。边界场景处理空链表 / 单节点:直接返回原链表;

2026-02-12 11:24:57 912

原创 Linux复习-用户和组管理

在 Linux 系统中,是系统安全与权限控制的基石。合理的用户与组配置,既能实现多用户环境下的资源隔离,又能通过权限分配保障系统安全。本文将围绕用户与组的创建、删除、管理核心命令(useraddgroupaddpasswd等)展开,从基础语法到实战场景,全面讲解 Linux 用户与组管理的核心知识。

2026-01-29 17:22:22 713

原创 Linux复习-进程及其命令

进程是操作系统对正在运行的程序的抽象,是系统进行资源分配和调度的基本单位。简单来说,程序是静态的代码文件,而进程是程序的一次执行过程,是动态的实体。每个进程都拥有独立的地址空间、文件描述符、内存资源等,进程之间相互隔离,避免了资源竞争导致的系统崩溃。同时,进程也可以通过管道、信号、共享内存等方式进行通信,实现协同工作。

2026-01-29 14:52:00 679

原创 Linux复习-文件与目录

Linux 作为一款开源、稳定且高效的操作系统,广泛应用于服务器、嵌入式设备等领域。而文件系统结构和权限管理是 Linux 学习的核心基石,掌握这两部分内容,不仅能理解 Linux 系统的运行逻辑,还能保障系统的安全性与可维护性。本文将详细拆解 Linux 核心目录结构,以及文件 / 目录权限管理的常用命令与实操技巧,帮助大家快速上手。

2026-01-29 11:10:53 641

原创 Kubernetes-安全参数

Kubernetes 安全参数的核心是 **「隔离 + 最小权限」**:通过实现容器级权限管控,通过 PSS 实现集群级安全标准,再配合非 root 镜像、只读文件系统等实践,可构建多层容器安全防线。安全配置无绝对,需根据业务场景灵活调整:普通业务优先Baseline等级 + 非 root 运行;高安全业务升级为Restricted等级 + 只读根文件系统;特殊系统组件(如网络插件)可适度放宽限制,但需严格审计。后续可进一步探索(系统调用过滤)、AppArmorSELinux。

2026-01-26 14:39:24 592

原创 Kubernetes-网络策略

NetworkPolicy是Kubernetes的一种资源对象,用于定义Pod之间、Pod与外部网络之间的流量规则。通过“选择器”匹配目标Pod,通过“流量规则”允许/拒绝特定流量。关键注意点:NetworkPolicy仅对“被选中的Pod”生效,未被任何策略选中的Pod,依然保持默认互通。策略的规则是“白名单模式”——默认拒绝所有流量,只有明确允许的流量才能通过(除非策略明确配置“允许所有”)。

2026-01-23 09:24:23 715

原创 Kubernetes-安全机制

认证的核心是“身份校验”,Kubernetes不存储用户信息,而是通过“凭证”验证请求发起者的身份。只要凭证合法,就认为身份有效;凭证无效,直接拒绝请求(返回401 Unauthorized)。用户(User):集群外部的使用者,比如管理员、开发人员,由集群管理员手动管理(K8s不提供内置的用户管理功能,需结合外部系统,如LDAP);服务账户(ServiceAccount)

2026-01-22 15:18:37 665

原创 Kubernetes-调度器(2)

固定调度是最直接的节点绑定方式,适合对节点有强依赖的场景,但灵活性较差。污点与容忍是更灵活的调度控制机制,通过 “节点拒绝 + Pod 容忍” 的模式,实现精细化的资源隔离与调度策略。在实际生产环境中,建议结合节点亲和性(Node Affinity)与污点容忍,构建更健壮的调度体系。

2026-01-20 11:05:24 339

原创 Kubernetes-调度器(1)

绕过 DNS 依赖,直接通过 API 绑定 Pod。实现更灵活的节点选择逻辑(如固定调度到特定节点)。适配无jq、无网络的极端离线环境。do# 获取待调度 Pod(schedulerName=my-scheduler 且未分配节点)do# 获取节点列表并随机选择# 绑定 Pod 到节点donesleep 1done💡 关键优化:用awk替代jq,纯原生工具适配离线环境;单节点环境下自动绑定到唯一节点。现象:调度器日志显示curl。

2026-01-19 17:45:24 617

原创 Kubernetes-PV(PersistentVolume)和PVC(PersistentVolumeClaim)

在 Kubernetes 持久化存储的学习中,PV(PersistentVolume)与 PVC(PersistentVolumeClaim)是绕不开的核心概念。本文将结合我在离线单节点环境下的完整实验经历,从理论到实战,带你彻底掌握 Local PV/PVC 的配置、部署与排障,同时深入理解 StorageClass 的动态供给能力。Kubernetes 中 Pod 是临时、可销毁的,但很多应用(如数据库、日志系统)需要持久化存储来保存数据。直接在 Pod 中使用 或 存在以下问题:PV/PVC 采用

2026-01-19 15:31:23 652

原创 Kubernetes-Volume

Volume 是 Kubernetes 中实现存储管理的基础,emptyDir和hostPath临时共享用emptyDir;访问宿主机文件用hostPath(生产环境建议用更可靠的存储类型,如 PersistentVolume)。

2026-01-15 17:37:25 726

原创 Kubernetes-Downward API

Downward API 是 Kubernetes 中让 Pod “感知自身” 的轻量工具,通过环境变量或卷挂载的方式,可便捷地将 Pod 元数据、资源配置传递到容器内部。相比调用 Kubernetes API,它更简单、更可靠,是日常开发中获取 Pod 自身信息的首选方案。

2026-01-15 15:14:12 542

原创 Kubernetes-Secret

Secret 是 K8s 提供的敏感配置存储资源,用于存储密码、OAuth 令牌、SSH 密钥等敏感信息,相比 ConfigMap(存储非敏感配置),Secret 具备更严格的权限控制,且数据以 Base64 编码形式存储(注:Base64 是编码而非加密,需结合 RBAC / 加密配置提升安全性)。kind: Podmetadata:labels:spec:# 定义Secret卷volumes:secret:secretName: mysecret # 关联的Secret名称。

2026-01-15 14:02:11 843

原创 Kubernetes-ConfigMap

ConfigMap 是 K8s 提供的一种配置存储资源,用于存储非敏感的键值对配置(如配置文件、环境变量、命令行参数等),可被 Pod 以多种方式挂载使用。配置与镜像解耦:无需修改镜像即可调整应用配置;环境隔离:为开发、测试、生产环境配置不同的 ConfigMap;易维护:集中管理配置,修改后可快速同步到关联 Pod(视挂载方式而定)。ConfigMap 是 K8s 配置管理的核心工具,通过解耦应用与配置,大幅提升了配置管理的灵活性和可维护性。

2026-01-14 17:45:07 750

原创 Kubernetes-Service(2)

当客户端访问该Service的域名时,DNS解析会直接返回所有关联Pod的IP列表,客户端需要自行实现负载均衡逻辑(如DNS轮询、自定义分发策略)。:集群内部服务需要访问外部服务(如外部数据库、第三方API),通过Service统一管理外部服务的域名,后续若外部服务域名变更,只需修改Service配置,无需修改所有依赖该服务的内部应用,降低维护成本。:Service被分配一个集群内部唯一的虚拟IP(ClusterIP),仅能在集群内部访问(Pod、集群节点均可访问),无法被外部客户端直接访问。

2026-01-14 14:59:26 578

原创 Kurbenetes-Service(1)

在Kubernetes(简称K8s)的生态中,Pod是最小的部署单元,但Pod存在一个天然的“痛点”——生命周期短暂,IP地址会随着Pod的创建、销毁而动态变化。如果直接通过Pod IP访问应用,稳定性根本无法保障。这时候,Service就应运而生了。本文将从“为什么需要Service”出发,逐步深入讲解Service的核心概念、工作原理、常见类型及实战配置,帮你彻底搞懂Service在K8s集群中的作用和使用方式。

2026-01-14 14:57:02 345

原创 Kubernetes-Pod生命周期

在 Kubernetes(简称 k8s)的技术体系中,Pod 作为最小部署单元,其生命周期的管理是云原生开发与运维的核心知识点之一。掌握 Pod 生命周期的流转逻辑、关键机制及配置要点,是保障集群稳定运行、提升服务可用性的基础,本文将系统拆解 Pod 生命周期的核心内容,助力开发者全面掌握这一关键技术。

2026-01-12 16:00:13 504

原创 Kubernetes-控制器介绍

控制器类型核心场景关键特性ReplicaSet基础副本管理(少用)灵活标签选择器Deployment无状态应用部署滚动更新、版本回滚DaemonSet节点级任务每个节点一个 PodJob一次性批处理任务任务完成后终止CronJob定时任务基于 Cron 表达式调度有状态应用部署稳定身份、存储、网络HPA自动扩缩容基于指标动态调整副本数K8s 的控制器体系覆盖了从无状态到有状态、从一次性任务到长期服务的全场景需求,掌握它们的适用场景,是高效使用 K8s 的关键~

2026-01-09 14:16:06 705

原创 Kubernetes-资源清单(2)

在 Kubernetes(K8s)中,Pod 作为最小的部署和调度单元,其生命周期贯穿了 “创建→运行→终止→销毁” 的完整过程。理解 Pod 的生命周期,不仅能帮我们精准排查 Pod 启动失败、频繁重启等问题(如部署 TodoList 项目时遇到的 Pod 重启问题),更能通过生命周期钩子和探针设计高可用的应用部署策略。本文将从核心阶段、关键机制、实战案例三个维度,彻底讲透 Pod 生命周期。

2026-01-08 15:58:13 820

原创 Kubernetes-资源清单(1)

资源分类层面:区分名称空间 / 集群级别资源,避免在集群级别资源中指定 namespace(如 Node、PV 无需指定);YAML 语法层面:严格遵守缩进(空格)、冒号后加空格,数组元素以开头,避免低级语法错误;字段配置层面标签匹配是核心:Deployment 的 selector、Service 的 selector 必须与 Pod 的 labels 一致;端口匹配是关键:容器端口、Service 的 targetPort、应用实际监听端口三者必须统一;

2026-01-08 15:41:48 683

原创 Go 语言 TCP 编程:30 行代码实现一个回显服务

【代码】Go 语言 TCP 编程:30 行代码实现一个回显服务。

2025-12-25 09:40:15 174

原创 Go 语言 ioutil 包:一行代码搞定文件读写与目录遍历

包的 “工具扩展”,封装了高频 IO 操作(Go 1.16 + 部分功能迁移到。,但老版本仍常用)。

2025-12-25 09:39:41 207

原创 Go 语言 IO 基石:Reader 与 Writer 接口的 “最小设计” 与实战落地

go运行// 自定义Reader:读取文件的指定区间end int64pos int64if err!= nil {// 实现Reader接口// 移动到当前读取位置err!= nil {// 计算本次可读取的最大长度// 读取数据。

2025-12-25 09:37:11 135

原创 GO学习-io包常用接口

Go 语言io包接口,核心是,可分为和。

2025-12-24 16:13:45 318

原创 八股-2025.10.24

synchronized的”互斥“能力”依赖Monitor(监视器),可理解为一个“由JVM管理的,负责线程竞争的工具”,其本质是一个C++实现的对象(ObjectMonitor)。锁对象:手动指定的“任意对象”(需要是引用类型,如this,Class对象,自定义Object实例),锁粒度可精准控制)(只锁临界区,不锁整个方法)。C.读写锁:基于“读写分离”的优化锁,分为读锁(共享锁,多个线程可同时读)和写锁(排他锁,进一个线程可写),解决“读多写少”场景下的性能问题。例如扣库存时,SQL 写为。

2025-10-24 21:42:34 859

原创 八股-2025.10.20

在C++中通过public(公开接口),private(私有成员,仅内部访问),protect(保护成员,类内及子类访问)三种访问控制符实现。令牌桶有最大容量,多余令牌会溢出。I/O多路复用是操作系统提供的I/O模型,允许程序通过一个系统调用,同时监听多个文件描述符(如网络连接,文件,管道)。将数据(成员变量)和操作数据的方法(成员函数)捆绑在一起,隐藏对象的内部实现细节,仅通过公开的接口和外部交互。适用场景:连接数多,I/O就绪频率低的场景,例如Web服务器(Nginx),网关,即时通讯等场景。

2025-10-20 21:35:23 743

原创 八股-2025.10.14

Redssion是Redis的Java客户端,它封装了分布式锁的实现细节(解决了Redistribution原生实现的“锁过期,主从一致性和可重入”等问题),提供了“开箱即用”的分布式锁API。ZooKeeper是分布式协调工具,核心特性是“强一致性”(基于ZAB协议,数据写入后多节点同步完成才返回成功),其“临时有序节点”天然适合实现分布式锁。核心思路是“利用Redis的原子命令,实现”占坑“和”释放坑“的互斥逻辑,因为Redis是单线程模型,其原子命令能保证操作的唯一性。基于Redis,性能高;

2025-10-14 21:46:33 387

原创 八股-2025.10.12

占内存的生命周期与所在的作用域绑定,例如函数内的局部变量,当函数执行完毕胡,栈内存就会被释放,无法在作用域外访问;栈内存由编译器自动管理,遵循”先进后出“的原则,当函数调用时,局部变量和函数参数等会被自动压入栈中,函数执行结束后,这些内存会被自动弹出并释放,无需开发者手动干预;JDK1.8彻底放弃了“分段锁”,借鉴HashMap的“数组+链表/红黑树”结构,改用“CAS无锁操作+synchronized“实现线程安全,锁粒度细化到”哈希桶的头节点“,并发性能进一步提升。

2025-10-12 21:53:54 846

原创 八股-2025.10.11

一是为每个“有虚函数的类”生成一张独立的虚表。核心特性:多个shared_ptr可以管理同一块内存,内部通过引用计数机制管理-每增加一个指针指向该内存,计数+1,每销毁一个指针,计数-1,当计数为0时,释放该内存。主键索引(唯一且非空),普通索引,唯一索引(索引列的值必须唯一,但允许NULL),联合索引(基于多个列创建的索引),覆盖索引(索引包含查询所需的所有列)CAS机制:乐观锁的底层实现原理,核心逻辑是“先比较资源当前值是否等于预期值,若等于则交换为新的值,否则失败”,整个操作是原子性的。

2025-10-11 21:17:42 385

原创 八股-2025.9.28

核心逻辑是事务开启时,对读取的数据生成一个“一致性快照”(MVCC,多版本并发控制),后续读取均基于该快照,不受其他事务提交的修改的影响。c.RBD的优点是性能好,主进程无阻塞,rdb.是二进制文件,重启加载速度快,而且占用磁盘空间小。a.它的实现逻辑是触发快照时,Redis会通过fork创建一个子进程,子进程负责遍历内存数据并生成快照文件,而父进程则继续处理客户端请求。随着命令增多,.aof文件会变大,这时Redis会触发“重写“,把冗余命令合并,生成精简的新文件替换旧文件,避免磁盘占用过大。

2025-09-28 17:36:44 719

原创 八股-2025.9.27

服务器发送SYN+ACK(标志位SYN=1,ACK=1,复合标志),Ack=x+1(确认号,等于客户端的Seq加1,表示”我已收到你Seq=x的数据包,下次请发+1开始的数据“),Seq=y(服务器生成的初始序列号,与客户端的x无关)客户端发送ACK包(标志位ACK=1),Ack=w+1(确认号,等于服务器FIN包的Seq+1,表示”我应经收到你关闭发送通道的通知,现在双方都没有要发送的数据了“),Seq=u+1(客户端当前的序列号,基于第一次挥手递增)

2025-09-28 14:53:21 517

原创 力扣HOT100-跳跃游戏II

用current_end记录本次跳跃可到的最远位置,记录每个位置可跳跃到的最远位置,用它们的最大值不断更新fastest。这样当i==current_end时,fastest的值就是本次跳跃中可到达的下次跳跃的最远位置,直接用fastest更新current_end,最终得到的times就是到达n-1位置的最小跳跃次数。因此整体时间复杂度为 O (n),其中 n 是数组 nums 的长度。这些变量的数量与输入规模 n 无关,不随 n 的变化而变化。循环内部的操作(比较、赋值等)都是常数时间 O (1)

2025-09-26 20:57:46 320

原创 八股(9.26)

查询效率稳定:无论查询到哪个关键字,都必须遍历到叶子节点,因此所有的查询时间复杂度为O(logn),避免B树中“部分查询可能在非叶子节点就结束”导致的效率不稳定问题。叶子节点有序且相连:B+树的非叶子节点仅作为索引目录(不存储实际数据),所有实际数据(或主键指针)都存储在叶子节点中,且叶子节点之间通过双向链表连接。相比二叉搜索树:普通二叉树可能退化为链表(查询效率O(n)),即使是平衡二叉树(如AVL树,红黑树),其高度仍远高于B+树,磁盘I/O次数过多。且范围查询需要回溯,效率低。

2025-09-26 19:39:34 742

原创 面经汇总(1)

12.ping和telnet两个命令之间有什么区别,使用场景有什么不同?11.怎么保障一段逻辑或者一个请求在并发处理情况下的线程安全性?5.如果四次挥手第四次客户端的ACK没有发出去会有什么结果?14.http 和 http 协议之间有什么区别呢?15.什么是关系型数据库?什么是非关系型数据库呢?10.介绍对象存储以及常见的对象存储方式。16.常见的关系型数据库有哪些呢?3.介绍TCP/UDP区别。8.主要的线程池有哪几种?18.手撕最大连续子数组和。6.介绍MYSQL的事务。2.介绍常见的排序算法。

2025-09-17 16:54:29 155

原创 力扣刷题HOT100——跳跃游戏

给你一个非负整数数组nums,你最初位于数组的。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回true;否则,返回false。true可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。false无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。采用,核心思想是,并在遍历数组的过程中不断更新这个位置。,表示初始时能到达的最远位置是下标0。ii。

2025-07-24 19:24:45 412

原创 力扣刷题HOT100——394.字符串解码

给定一个经过编码的字符串,返回它解码后的字符串。编码规则为:,表示其中方括号内部的正好重复k次。注意k保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数k,例如不会出现像3a或2[4]的输入。"aaabcbc"

2025-07-24 16:51:43 374

原创 力扣刷题HOT100——155.最小栈

设计一个支持pushpoptop操作,并能在常数时间内检索到最小元素的栈。实现MinStackMinStack()void pop()int top()

2025-07-24 15:32:15 302

原创 力扣刷题——二分查找总结

我们可以总结出二分查找的通用做法和常见变种。二分查找是一种在有序数组中高效查找元素的算法,时间复杂度为 O (log n)。二分查找的核心思想是将搜索范围不断缩小一半,直到找到目标元素或确定其不存在。以下是通用模板:cpp。

2025-05-11 19:00:16 443

原创 力扣HOT100——207.课程表

你这个学期必须选修numCourses门课程,记为0到。在选修某些课程之前需要一些先修课程。先修课程按数组给出,其中,表示如果要学习课程ai则先学习课程bi。[0, 1]01请你判断是否可能完成所有课程的学习?如果可以,返回true;否则,返回false。true总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。这是可能的。

2025-04-30 16:18:42 549

空空如也

空空如也

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

TA关注的人

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