- 博客(76)
- 收藏
- 关注
原创 用 Python + LangChain 从零搭了一个能查文档、能调工具、还能记住对话的 AI 助手
本文总结了使用LangChain开发大模型应用的经验,重点对比了Spring AI与LangChain的差异,并详细拆解了RAG技术的实现流程。
2026-08-13 20:00:46
284
原创 用 Java + Spring AI 搭了一个能查文档、能调接口的 AI 助手,这周我经历了什么
本文记录了Java后端程序员学习大模型应用开发的实践过程。作者首先安装Ollama本地运行7B参数的Qwen2.5模型,测试发现其在编程和常识问题上表现良好,但存在"幻觉"问题。接着将Ollama接入Spring Boot项目,通过Spring AI实现基础对话功能,并改进为流式输出以提升用户体验。
2026-08-12 17:19:33
309
原创 补完搜广推方向缺口后,我终于能口述一条搜索请求的全链路了
摘要: 本文记录了作者为应聘搜广推岗位快速补充技术栈与业务知识的学习路径。重点涵盖: Kafka:作为数据总线处理用户行为日志,核心概念包括Topic/Partition、Consumer Group和可靠性保障。 Flink:用于实时特征聚合,对比Spark Streaming的低延迟优势,关键点如EventTime、Watermark和状态管理。 搜索/推荐/广告系统链路: 搜索:Query理解→召回→粗排→精排→重排,倒排索引与向量召回结合。
2026-08-12 10:33:34
358
原创 从零吃透 Elasticsearch + 分布式基础:倒排索引、DSL、Seata 分布式事务、Redis 分布式锁全记录
本文分享了Java后端开发中Elasticsearch和分布式事务的核心知识点。通过对比MySQL的B+树索引和ES的倒排索引,解释了ES的高效全文搜索原理,并详细介绍了DSL查询语法(match/term/bool查询)和Spring Boot集成ES的三步流程。在分布式事务部分,分析了CAP定理的实践选择(CP/AP),阐述了BASE理论,并对比了2PC、TCC、Seata AT和MQ最终一致四种方案的优缺点,特别推荐了业务侵入性低的Seata AT模式。
2026-08-10 16:29:30
505
原创 吃透消息队列:RabbitMQ从入门到消息可靠性实战 + RocketMQ对比
本文系统介绍了RabbitMQ的核心概念与实战应用,重点分析了消息队列的三大优势(异步、削峰、解耦)以及消息可靠性的五层保障机制。作者通过Spring AMQP实战演示了RabbitMQ的安装配置、消息收发、交换机类型等基础用法,并深入剖析了消息丢失的三个关键环节(生产端、Broker、消费端)及其解决方案,包括生产者确认机制、持久化、手动ACK、重试与死信队列等。文章特别强调了手动ACK模式在面试中的重要性,为开发者提供了完整的消息可靠性保障方案。
2026-08-07 14:21:10
337
原创 从零搭建微服务:Spring Cloud Alibaba 全家桶踩坑实录(Nacos + OpenFeign + Gateway + Sentinel)
本文记录了作者从单体架构迁移到微服务架构的实践经验。作者在使用Spring Boot开发图书管理系统时,遇到了单体应用常见的痛点:全量部署效率低、模块间故障传播、无法独立扩容等问题。为解决这些问题,作者采用Spring Cloud Alibaba全家桶进行了微服务改造,主要包括:1)使用Nacos作为服务注册中心实现服务发现;2)通过OpenFeign简化服务间调用;3)引入Gateway作为统一API网关;4)配置Sentinel实现限流熔断。文章详细介绍了各组件的工作原理、配置方法和实战技巧,并分享了超
2026-08-04 14:51:24
433
原创 一周搞懂 Git + Docker + K8s + CI/CD:从零到自动化部署的踩坑实录
本文分享了作者在学习DevOps工具链一周的实践经验,重点介绍了Git分支管理、Docker容器化、Kubernetes编排和CI/CD自动化四大核心内容。通过真实踩坑案例,作者总结了Git Flow多分支协作、Docker镜像构建与容器部署、Kubernetes集群管理以及GitHub Actions自动化流水线等企业级开发必备技能。文章以"代码管理-环境打包-容器编排-持续交付"为主线,用通俗易懂的比喻和实操演示,帮助读者快速掌握现代软件开发生命周期的完整工具链。特别强调了从"能跑就行"到"可维护可交付
2026-08-03 16:09:24
342
原创 一周搞懂多线程 + 线程池 + AOP:从count++翻车到真正理解并发编程
本文作者通过一个并发计数demo的失败经历,系统性地总结了Java多线程编程的核心知识点。文章首先揭示了count++的非原子性问题,进而讲解了线程创建的三种方式、volatile关键字的作用与局限、线程池的参数配置与执行流程(类比出租车公司模型),以及CompletableFuture的链式异步编程优势。全文以实际问题为切入点,结合代码示例和生动比喻,帮助读者从实践角度理解并发编程的常见陷阱和解决方案。
2026-08-03 13:38:32
427
原创 一周搞懂Redis + JWT + 拦截器:从入门到实习项目踩坑全记录
从零学习Redis并优化缓存模块的经历。面对设备管理平台的高延迟查询问题,作者通过一周的学习掌握了Redis核心概念(五种数据类型、Cache Aside模式)及Spring Boot整合方法(StringRedisTemplate与RedisTemplate的区别)。重点分析了缓存三大问题——穿透(缓存空值)、雪崩(TTL加随机值)、击穿(互斥锁),结合项目实践给出了解决方案。文章以生动比喻和代码示例,为初学者提供了从理论到实战的完整学习路径。
2026-07-31 14:53:13
159
原创 被mentor问“volatile到底干了什么“之后,我把高并发从头啃了一遍
本文记录了一个程序员从零开始学习并发编程的真实过程。作者在项目中遇到了MqttIngressOrchestrator的双重日期检查问题,由此引发了对并发机制的深入探索。文章通过CPU缓存架构图解说明了"可见性"问题的本质,解释了volatile和synchronized的工作原理,并对比了它们在性能与安全性上的取舍。在实践部分,结合IoT项目中的用户登录场景,详细分析了接口限流(采用Caffeine缓存+AtomicInteger计数器)和账户锁定(基于Shiro的重试计数)两种并发控制方案的实现原理。全文
2026-07-28 14:31:27
136
原创 手把手带你!如何将自己创作的本地项目进行部署实现外部访问~(采用宝塔面板的形式)
本文介绍了如何利用宝塔面板在局域网内搭建个人网站,并通过路由侠实现外网访问。教程分两步:首先在Linux系统安装宝塔面板,部署网站项目;然后安装路由侠内网穿透工具,通过Docker容器配置映射,将内网网站端口映射到公网地址。最终用户可通过生成的外网链接访问局域网内的网站。该方法适用于Windows/Linux系统,适合个人开发者和小型企业实现远程访问需求,其中路由侠支持开机自启和跨设备管理功能。
2026-07-28 09:50:27
205
原创 大二算法刷题手记:从哈希表到动态规划
这篇笔记记录了作者15天系统刷算法题的过程,每天攻克一个专题(如哈希表、双指针等),每专题3道题。重点记录解题思路、卡壳点和突破方法。从哈希表的基本应用(两数之和、统计频次)到双指针技巧(快慢指针、对撞指针),详细解析每道题的思考路径和优化过程。文章强调理解算法本质(如哈希表的O(1)查询特性)和适用场景(有序数组用双指针优化空间),并提供代码模板和复杂度对比。通过实战演示如何将理论转化为解题能力,适合算法初学者参考。
2026-07-23 15:24:32
204
原创 用一个企业级真实的工业物联网项目,带你把23种设计模式从头撸到尾
本文是一位实习生在工业物联网项目中学习23种设计模式的实践总结。文章以创建型模式为切入点,通过具体代码示例和生活类比,阐述了单例模式、工厂方法、抽象工厂和建造者模式的实际应用。 单例模式用于全局唯一的ID生成器,通过私有构造和静态实例保证线程安全;工厂方法在Shiro配置中通过@Bean封装对象创建;抽象工厂实现SM4加密工具,根据不同密钥类型生成整套加密配置;建造者模式则用于分步构建AI诊断所需的设备上下文信息。每种模式都配有项目代码片段(已脱敏)和面试讲述要点,展现了设计模式在实际系统中的关键作用
2026-07-23 13:18:24
470
原创 如何用VibeCoding实现自己的小创意?这篇文章带你手把手一步步去实现~(附避坑指南)
本文手把手指出了在VibeCoding编程时需要注意的点和一些核心技巧
2026-07-17 16:19:43
231
原创 实习第二周,mentor让我给整个项目搭一套测试体系,我人傻了
从零搭建物联网项目测试体系的实战经验 本文记录了作者从学校实验报告式测试到企业级测试体系搭建的成长历程。实习期间接手一个物联网项目的测试体系建设,面临的挑战包括: 混乱现状:项目默认跳过测试、JUnit版本混用、测试代码污染生产包、缺乏分类标准和覆盖率工具 规范先行:制定了《单元测试编写规范》,核心包括: 使用自定义注解@UnitTest和@IntegrationTest明确测试类型 采用三段式命名法被测方法_输入条件_预期结果 严格执行AAA模式(Arrange-Act-Assert) 限定Mock范围只
2026-07-17 15:48:41
306
原创 实习第一周,全是脏累活,但我靠一个“笨办法“把重复劳动砍掉了一半~
这篇文章分享了一名Java实习生如何通过编写AI Skill来优化重复性工作。作者最初每天忙于格式化日志、检查SQL等琐碎任务,后在导师指导下学会了将重复性工作拆解为规则,编写成Markdown格式的Skill文件。文章详细介绍了Skill的概念(类似"工作手册")、编写技巧(具体规则+输出格式+示例)、常见踩坑(如描述模糊、冗长、缺乏示例)以及进阶心得(检查清单、分支模式等)。最终,作者通过这套方法将每日重复工作时间从2-3小时压缩到半小时,并总结出"说明书式编程"的核心逻辑:用具体规则教会AI处理固定流
2026-07-16 15:29:10
296
原创 责任链还是编排器?一次实际项目中的技术选型
在重构设备上报数据处理模块时,面对8个固定处理步骤(如解析、校验、存储等),对比了责任链与显式编排器两种设计模式。责任链虽然优雅,但难以满足动态开关节点、快速失败、分段容错等实际需求。最终选择显式编排器,因其能集中控制流程,通过统一模板实现开关判断、耗时统计和差异化容错,代码更直观。核心结论:处理步骤固定且需精细控制时选编排器,处理者动态扩展时选责任链,二者适用场景不同,关键在于权衡"灵活性"与"控制力"。
2026-07-16 15:08:52
364
原创 工业物联网实战:基于显式编排器模式的9阶段数据Pipeline全链路解析
工业物联网数据处理Pipeline架构解析 本文介绍了一种基于显式编排器模式的9阶段工业物联网数据处理Pipeline架构。该方案解决了传统大函数处理方式的三个痛点:代码难修改、功能难开关、问题难追踪。核心设计包括: 模块化流水线:将数据处理拆解为9个独立节点(消息解析、数据校验、时序存储等),每个节点专注单一职责 显式编排器:采用中央调度模式替代传统责任链,将流程控制逻辑集中管理 上下文对象:通过统一的Context载体传递处理状态和中间结果 全链路追踪:为每条数据分配唯一traceId,记录各节点执行状
2026-07-16 09:45:05
1126
原创 工业物联网实战:基于 Eclipse Paho + Spring Event 的 MQTT 事件驱动接入全链路解析
本文介绍了一个基于Eclipse Paho和Spring Event的工业物联网MQTT接入层实现方案。文章首先分析了传统HTTP在物联网场景下的局限性,阐述了MQTT协议的长连接、发布/订阅模型等核心优势。随后详细讲解了系统架构设计,采用分层解耦思想,包含回调适配层、接入编排层和事件桥梁层。在实现层面,重点介绍了可外部化配置管理、客户端生命周期管理(包括唯一ClientId生成和线程安全连接)、消息处理机制(含保留消息过滤和重连策略),以及通过Spring Event实现业务解耦的方案。
2026-07-12 23:03:27
444
原创 实习踩坑:从“businessType纠正”到“补充@Log注解”——一次完整的代码规范化实践
本文总结了2026年7月8日的开发任务,主要包括: 统一180+业务接口的title命名规范,采用"模块名-操作描述"格式 优化日志注解配置,修正BusinessType误用,补充缺失的@Log注解 针对大数据量接口设置isSaveResponseData=false以优化性能 完善敏感操作的日志记录策略 编写《操作日志注解使用规范》文档 主要收获: 理解了企业级日志系统的审计价值和规范重要性 认识到日志记录需要平衡完整性和性能 BusinessTypeEnum的设计体现了分类统计思想 通过本次任务,建立了
2026-07-08 14:44:45
198
原创 项目中的@Log注解怎么用?一次完整的日志规范检查复盘
本文记录了2026年7月7日完成的操作日志注解专项工作,主要包含: 系统梳理了@Log注解工作原理,产出学习指南(含7个自检问题)和现状分析报告(覆盖114个Controller/1076接口); 发现492个接口缺失@Log(46%),识别出title前缀不统一(43文件)、businessType错误(1文件)等问题; 建立P0-P3优先级分类处理机制,重点解决31个完全缺失@Log的核心模块; 总结日志模块设计原则(异步写库/异常安全/脱敏处理)和生产级代码实践,相关成果可直接写入简历。通过本次任务,
2026-07-07 15:41:30
236
原创 如何快速理解一个陌生项目的业务逻辑?
文章摘要: 2026年7月6日的学习任务主要围绕@Log操作日志注解展开系统化研究。通过分析四个核心文件(Log.java、BusinessTypeEnum.java、SerialPortAlarmBindingConfigController.java和LogAspectj.java),梳理出完整的日志机制实现逻辑:1)@Log作为方法级注解定义日志记录规则,包含模块标题、业务类型等属性;2)BusinessTypeEnum枚举26种操作类型,涵盖通用管理和IoT专用场景;3)通过控制器示例提炼出注解使用
2026-07-07 14:18:41
372
2
原创 Python面向对象高级:类方法、静态方法、属性装饰器与单例模式实现
本文介绍了Python面向对象编程中的三大特性:封装、继承和多态。封装通过私有属性和方法提高代码安全性,需通过公共接口访问;继承支持单继承和多继承,子类可重写父类方法,使用super()调用父类方法;多态通过继承和方法重写实现同一接口不同行为。此外还介绍了类属性与对象属性、类方法与静态方法的区别。这些特性共同提升了代码的复用性、安全性和扩展性,是Python面向对象编程的核心内容。
2026-05-17 13:45:05
352
原创 Python面向对象基础:类与对象、继承、多态与魔法方法详解
本文介绍了面向对象编程的基本概念和Python实现。面向对象编程以对象为基础,具有封装、继承和多态三大特性,相比面向过程更贴近现实世界。文章详细讲解了类和对象的关系,类作为抽象模板,对象是具体实例。通过汽车类案例演示了如何定义类、创建对象、使用self关键字访问成员。还介绍了属性的添加获取方式,以及__init__、str、__del__等魔法方法的使用场景。最后通过减肥案例和烤地瓜案例展示了面向对象的实际应用。Python同时支持面向过程和面向对象编程,面向对象方式使代码更模块化、可复用,能更好地模拟现实
2026-05-15 19:18:36
942
原创 Python ORM框架入门:SQLAlchemy模型定义、增删改查与关联查询
本文介绍了在FastAPI中使用SQLAlchemy异步版实现ORM数据库操作的方法。主要内容包括:1)ORM的核心优势,如避免SQL注入、提高代码复用性;2)SQLAlchemy异步版的实战步骤,从安装依赖、创建数据库到初始化项目;3)详细讲解ORM模型定义、会话管理和CRUD操作实现;4)总结异步ORM操作的核心流程,包括环境搭建和数据操作步骤。通过异步ORM技术,开发者可以用Python对象操作数据库,提升开发效率和安全性。
2026-05-13 00:15:50
734
原创 FastAPI进阶:中间件全局拦截、依赖注入与请求生命周期管理
FastAPI进阶开发三大核心特性:中间件、依赖注入和ORM。中间件用于全局请求处理,如身份认证、日志记录,遵循洋葱模型执行顺序;依赖注入实现局部逻辑复用,如分页参数处理,通过Depends声明使用;ORM则优雅操作数据库。三者协同提升代码复用性、解耦性和可维护性,其中中间件适用于全局逻辑,依赖注入更适合部分接口的通用处理。掌握这些特性可大幅提升企业级应用开发效率。
2026-05-12 21:38:27
638
原创 FastAPI入门实战:内置asyncio异步、数据自动校验与Pythonic开发体验
FastAPI是一款高性能Python Web框架,具有三大核心优势:原生异步支持提升并发效率、自动类型校验增强代码健壮性、自动生成交互式文档降低调试成本。本文介绍了从环境搭建到核心功能的全流程:1) 基础项目创建与运行;2) 路由定义与请求方法;3) 三类接口参数处理(路径参数、查询参数、请求体参数);4) 多种响应类型设置;5) 自定义响应格式;6) 标准化异常处理机制。通过具体代码示例演示了参数校验、模型定义等实用功能,帮助开发者快速掌握FastAPI的核心用法,适用于API开发、微服务构建等场景。
2026-05-12 20:47:46
428
原创 AI Agent实战:从零搭建职业规划助手——SpringAI+大模型项目复盘
企业级AI职业规划智能体项目复盘摘要: 该项目构建了一个具备职业规划对话、智能体工具调用等功能的AI系统。技术亮点包括:1) 基于Spring AI实现职业规划师对话与Manus智能体双模式,支持SSE流式输出;2) 采用纯文本日志实现持久化会话记忆,解决流式场景记忆丢失问题;3) RAG检索增强结合查询重写与关键词增强,提升召回率;4) 工具调用采用类ReAct架构,支持多步执行与生成物下载。项目克服了Spring AI版本兼容、Reactive流处理、Vue响应式更新等技术难点,但也存在接口文档不一致、
2026-05-11 01:20:13
433
原创 Python入门必备:变量、数据类型、控制流与函数基础全梳理
Python基础包括字面量、变量、数据类型(字符串、数字、布尔值等)、运算符和流程控制(条件语句、循环)。支持多种输入输出方式,包括标准I/O和文件操作。Python的动态类型系统和丰富的内置数据结构(列表、字典、集合)使其灵活高效。注释使用#或三引号,变量命名遵循snake_case规范。Python还提供异常处理、类型转换和运算符优先级控制等功
2026-05-11 00:38:29
418
原创 大二Python学习路线规划:从零基础到FastAPI项目,目标大三暑期实习(附时间线)
本文建议科班学生不要将Python作为主语言,推荐Java、C++等企业主流语言,并分享Python学习路径。作者作为民办本科大二学生,已有Java开发经验并获得多个offer,现计划Java/Python双修。文章详细规划了10周Python学习路线:从基础语法到AI应用开发,最后通过项目实战巩固。特别强调在AI时代,提示词工程(Prompt Engineering)的重要性,推荐了SpringAIAlibabaDataAgent等项目。作者表示将持续完善学习资源,适合想系统学习Python的读者参考。
2026-04-02 13:25:30
512
2
原创 Java技术场景面试实战:项目中遇到的性能优化、缓存设计与异常处理
文章摘要:本文系统介绍了企业级开发中的关键技术实现方案。主要包括单点登录的JWT解决方案、基于RBAC模型的权限控制体系、数据加密传输的安全策略(对称/非对称加密)、日志采集的ELK架构、生产环境问题排查方法,以及系统性能优化的压测和监控方案。文章详细阐述了各项技术的实现原理、典型应用场景和最佳实践,为构建安全可靠的企业级系统提供了全面的技术参考框架。
2026-03-29 02:07:41
404
原创 设计模式面试高频题:单例/工厂/代理/观察者模式在框架中的实际应用
本文介绍了三种常用的设计模式及其应用场景。工厂方法模式通过解耦对象创建过程,包含简单工厂、工厂方法和抽象工厂三种形式,适用于咖啡店点餐等场景。策略模式将算法封装为独立策略类,便于灵活替换,适用于登录方式选择、促销活动等业务。责任链模式通过链式处理请求,适用于订单处理、审批流程等场景。这三种模式都能有效减少代码耦合,提高系统扩展性,符合开闭原则。在实际开发中,合理运用这些模式可以优化代码结构,提升项目可维护性。
2026-03-29 01:52:37
440
原创 Java多线程面试核心:线程状态、锁机制、volatile与线程池工作原理
本文摘要: Java线程基础知识包括线程与进程的区别、并行与并发的概念、线程创建方式(继承Thread类、实现Runnable/Callable接口、线程池)、线程状态及转换等。并发编程涉及synchronized底层原理(基于monitor实现)、锁升级机制(偏向锁、轻量级锁、重量级锁)、CAS乐观锁、volatile关键字(保证可见性和禁止指令重排)以及AQS框架。线程池相关内容包括核心参数配置(核心/最大线程数、队列等)、四种常见线程池类型及使用场景,强调避免使用Executors创建线程池的原因。
2026-03-27 13:08:41
502
原创 Java后端开发——真实面试汇总(持续更新)
摘要:浙江大学研究院面试内容涵盖数据结构、操作系统、网络协议、数据库优化及项目实践等方面。重点考察了ArrayList与LinkedList区别、TCP/UDP协议差异、Linux进程处理、Redis应用场景、布隆过滤器原理等基础知识。针对工业物联网场景,深入探讨了MySQL索引优化策略。项目相关问题涉及RAG流程实现、消息重复处理方案、OOM排查思路等。最后讨论了AI辅助开发工具的使用体验。面试持续90分钟,共31个技术问题,全面评估候选人的专业能力和项目经验。
2026-03-26 17:00:15
748
原创 JVM面试精讲:内存模型、垃圾回收算法、类加载机制与GC调优场景
JVM(Java虚拟机)是Java程序的运行环境,主要组成部分包括类加载器、运行时数据区、执行引擎和本地库接口。运行时数据区包含堆、方法区、栈、本地方法栈和程序计数器。JVM采用分代垃圾回收机制,包括新生代和老年代,使用标记清除、复制、标记整理等算法进行内存管理。垃圾回收器有串行、并行、CMS和G1等类型。JVM调优涉及堆大小、垃圾回收器选择等参数设置,可通过jmap、jstack等工具监控和排查内存泄漏、CPU飙高等问题。双亲委派机制确保类加载的安全性和唯一性。
2026-03-23 00:41:15
510
原创 Java集合面试高频考点:ArrayList/HashMap/ConcurrentHashMap底层原理与复杂度分析
本文系统介绍了Java集合框架中的核心数据结构与算法,重点分析了ArrayList、LinkedList和HashMap的实现原理及常见面试题。主要内容包括: 数据结构基础:数组、链表、二叉树、红黑树和散列表的实现原理及时间复杂度分析 ArrayList:底层动态数组实现,初始容量10,扩容1.5倍,支持随机访问O(1) LinkedList:双向链表实现,头尾操作O(1),非线程安全 HashMap:JDK1.8采用数组+链表+红黑树结构,扩容机制为2倍,通过hash算法定位元素 线程安全方案:Colle
2026-03-22 13:53:42
380
原创 SSM框架面试高频题:Spring IOC/AOP、SpringMVC流程、MyBatis原理与缓存
摘要:本文总结了Spring框架、MyBatis等技术面试常见问题及答案。主要内容包括:Spring单例bean的线程安全性、AOP原理与应用、事务实现与失效场景、bean生命周期与循环依赖解决方案;SpringMVC执行流程与常用注解;SpringBoot自动配置原理;MyBatis执行流程、延迟加载原理及一二级缓存机制。这些知识点涵盖了企业级Java开发的核心技术栈,对面试准备和技术学习具有重要参考价值。
2026-03-20 11:26:09
456
原创 消息中间件面试精讲:RabbitMQ/Kafka核心概念、消息丢失与重复消费解决方案
摘要:本文讨论了RabbitMQ和Kafka的消息可靠性保障机制。RabbitMQ通过生产者确认、持久化、自动重试和死信队列确保消息不丢失,采用镜像队列实现高可用。Kafka则通过异步回调、复制机制(acks=all)和手动提交offset保证消息可靠传输,利用分区和ISR机制实现顺序消费和高可用。两者都通过幂等性设计和唯一标识解决重复消费问题。此外,还介绍了RabbitMQ延迟队列实现、百万消息堆积处理方案,以及Kafka的高性能设计特点,包括零拷贝、消息压缩和分批发送等优化措施。
2026-03-20 10:38:54
392
原创 MySQL面试高频考点:索引优化、SQL执行计划、事务隔离级别与锁机制
本文系统总结了MySQL性能优化与事务管理的核心知识点。在性能优化方面,详细介绍了慢查询定位方法(监控系统/SQL日志)、EXPLAIN分析工具、索引原理(B+树结构、聚簇/非聚簇索引)、索引优化策略(覆盖索引、创建原则、失效场景)以及SQL语句优化技巧(字段选择、分页处理、表连接方式)。在事务管理方面,深入解析了ACID特性、并发问题(脏读/不可重复读/幻读)、隔离级别(默认REPEATABLE READ)及实现机制(MVCC、undolog/redolog)。最后还介绍了主从同步原理和分库分表实践方案。
2026-03-20 10:28:37
513
原创 Redis面试精讲:数据类型、持久化策略、缓存穿透/击穿/雪崩解决方案
本文探讨了Redis缓存系统中的三大核心问题:缓存穿透、缓存击穿和缓存雪崩。缓存穿透指查询不存在的数据导致数据库压力;缓存击穿是热点Key失效引发并发请求冲击;缓存雪崩则是大量Key同时过期或Redis宕机。解决方案包括布隆过滤器、互斥锁、随机过期时间等。此外,文章详细介绍了Redis持久化机制(RDB/AOF)、数据淘汰策略(LRU/LFU)、分布式锁实现(Redisson)及主从同步流程。最后分析了Redis高性能原因,包括单线程架构、I/O多路复用模型等。针对集群场景,讨论了哨兵模式、分片集群及脑裂问
2026-03-13 13:22:08
469
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅