<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yjyyc的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/yjyyc</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yjyyc]]></copyright><item><title><![CDATA[MySQL 四个高频问题的机制拆解：索引选择性、慢 SQL、事务隔离与锁、主从延迟]]></title><link>https://blog.youkuaiyun.com/yjyyc/article/details/170427185</link><guid>https://blog.youkuaiyun.com/yjyyc/article/details/170427185</guid><author>yjyyc</author><pubDate>Tue, 10 Nov 2026 14:20:55 +0800</pubDate><description><![CDATA[这四个问题几乎每场后端面试都会碰到，但大部分资料停在结论层：选择性低于 30% 别建索引、慢 SQL 就开慢日志、RR 靠 MVCC 防幻读、延迟看。这些说法单独看都不算错，可一旦被追问一步就会塌。每个结论都尽量给出可以自己推导的算式或数据来源，而不是一句经验值。：本文代码与索引定义来自一个景区分时预约票务后台（Java 17 / Spring Boot 3.3 / MyBatis-Plus / 本机 MySQL 8，默认 REPEATABLE READ）。数据量不大，。]]></description><category></category></item><item><title><![CDATA[一文入门 Docker：从“在 Linux 上装软件”到容器化部署 Nginx]]></title><link>https://blog.youkuaiyun.com/yjyyc/article/details/170199008</link><guid>https://blog.youkuaiyun.com/yjyyc/article/details/170199008</guid><author>yjyyc</author><pubDate>Fri, 06 Nov 2026 19:23:03 +0800</pubDate><description><![CDATA[3. 国内拉取 Docker Hub 镜像经常超时，可在 /etc/docker/daemon.json 中配置 registry-mirrors 镜像加速后重启 Docker。本文基于 Docker 入门课程整理，完整覆盖：Docker 是什么、Client/Server 架构、镜像 / 容器 / 仓库三大核心组件、CentOS 安装步骤、常用命令，以及用 Docker 跑 Nginx 并部署静态网站的全流程实战。|   +----------+  运行   +--------------+ |]]></description><category></category></item><item><title><![CDATA[MySQL 视图、存储过程与触发器超详解：虚表、预编译与隐式执行的取]]></title><link>https://blog.youkuaiyun.com/yjyyc/article/details/170198999</link><guid>https://blog.youkuaiyun.com/yjyyc/article/details/170198999</guid><author>yjyyc</author><pubDate>Fri, 06 Nov 2026 19:21:20 +0800</pubDate><description><![CDATA[存储过程（Stored Procedure）是在大型数据库系统中，一组为了完成特定功能的 SQL 语句集，存储在数据库中，经过第一次编译后，再次调用不需要重复编译；用户通过指定存储过程的名字并给出参数（如果该存储过程带有参数）来执行它。SQL 语句集存储在数据库中通过名字 + 参数调用。面试点：MySQL 的 "预编译" 要打个折。课件里 "再次调用不需要重复编译" 这句话，在 Oracle 里是严格成立的（存储过程编译后以字节码驻留）。而 MySQL 的存储过程并不缓存每条语句的执行计划。]]></description><category></category></item><item><title><![CDATA[Linux 服务器必知：Vim 编辑、网络配置与防火墙安全一篇搞定]]></title><link>https://blog.youkuaiyun.com/yjyyc/article/details/170147291</link><guid>https://blog.youkuaiyun.com/yjyyc/article/details/170147291</guid><author>yjyyc</author><pubDate>Thu, 05 Nov 2026 19:13:38 +0800</pubDate><description><![CDATA[Vim 三模式切换：Esc 回一般模式，i 编辑，: 命令行，wq 保存退出IP 地址：网络 ID + 主机 ID，ABC 三类地址要分清网络配置：ifconfig 临时查看，改配置文件永久生效防火墙：SELinux、iptables、firewalld 三层，调试阶段按需关闭，云服务器别忘了安全组这些都是部署项目时每天都要用的操作，练熟了以后服务器上手就快了。本文为个人学习笔记整理，如有错误欢迎指正。]]></description><category></category></item><item><title><![CDATA[Linux 进程与权限管理：从入门到实战的完整指南]]></title><link>https://blog.youkuaiyun.com/yjyyc/article/details/170132362</link><guid>https://blog.youkuaiyun.com/yjyyc/article/details/170132362</guid><author>yjyyc</author><pubDate>Thu, 05 Nov 2026 11:29:45 +0800</pubDate><description><![CDATA[进程是程序在数据集上的一次动态执行过程，是操作系统进行资源分配和调度的独立单位。简单说：程序是静态的文件，进程是跑起来的程序。Linux 的命令体系看似繁杂，但只要抓住"一切皆文件"这个核心思想，再结合日常多敲多练，很快就能上手。这份笔记覆盖了从文件查找、文本处理、进程管理到用户权限的核心知识点，也是我这阶段学习的总结。遇到不懂的命令，先man一下进程相关先再kill权限问题先看ls -l，再用chmod或chown解决希望这篇笔记对你有帮助，也欢迎交流指正！]]></description><category></category></item><item><title><![CDATA[发令台 GUNSTART：从业务闭环到 Spring Cloud Alibaba 领域微服务]]></title><link>https://blog.youkuaiyun.com/yjyyc/article/details/170051772</link><guid>https://blog.youkuaiyun.com/yjyyc/article/details/170051772</guid><author>yjyyc</author><pubDate>Wed, 04 Nov 2026 19:37:31 +0800</pubDate><description><![CDATA[• 公开排名 / 完赛统计：复杂窗口函数与 JOIN 放在 result 侧（共享库只读），对外路径仍是 /api/public/rank/{eventId}、/api/public/event/{id}/stats。• 对外路径尽量不变：前端仍调 /api/public/、/api/event/ 等相对路径，由 Gateway 按更具体的 Predicate 转发。前端 api.js 默认同源空 aiBase，即走 http://localhost:8081/api/ai/chat。]]></description><category></category></item><item><title><![CDATA[Linux 入门：从起源到文件管理基础]]></title><link>https://blog.youkuaiyun.com/yjyyc/article/details/170027227</link><guid>https://blog.youkuaiyun.com/yjyyc/article/details/170027227</guid><author>yjyyc</author><pubDate>Wed, 04 Nov 2026 10:07:50 +0800</pubDate><description><![CDATA[Linux 内核开源，众多厂商基于内核制作不同发行版；终端交互，Shell 充当命令解释器；Linux 一切从根出发，熟记核心目录的作用；熟练掌握 ls、cd、mkdir、cp、rm、mv 基础文件命令；tar 打包压缩重点记住参数互斥规则，日常用来做文件备份。后续我们可以继续学习 Linux 权限、用户管理、文本编辑 vim 等内容。]]></description><category></category></item><item><title><![CDATA[Github Copilot 实战落地：从代码辅助到研发效能跃迁]]></title><link>https://blog.youkuaiyun.com/yjyyc/article/details/169950522</link><guid>https://blog.youkuaiyun.com/yjyyc/article/details/169950522</guid><author>yjyyc</author><pubDate>Tue, 03 Nov 2026 19:56:04 +0800</pubDate><description><![CDATA[每天坐在编辑器前，最耗时的往往不是思考核心算法，而是那些重复性的机械劳动：手写 boilerplate 代码、回忆生疏语言的语法细节、或者对着没有文档的遗留系统猜谜。很多开发者都有过这样的时刻——明明逻辑在脑海里已经清晰无比，手指却在键盘上犹豫，因为要花费大量精力去处理格式、类型定义或是 API 的参数顺序。这种“上下文切换”的摩擦成本，正在悄悄吞噬我们的创造力和专注度。随着智能编码助手的普及，这种情况正在发生根本性的改变。]]></description><category></category></item><item><title><![CDATA[SpringBoot+Redis+AI旁路，打造可复用的赛事系统毕设]]></title><link>https://blog.youkuaiyun.com/yjyyc/article/details/169935268</link><guid>https://blog.youkuaiyun.com/yjyyc/article/details/169935268</guid><author>yjyyc</author><pubDate>Tue, 03 Nov 2026 11:56:27 +0800</pubDate><description><![CDATA[做赛事类系统，最容易陷入「只做后台 CRUD」或「堆概念全线崩盘」两个极端。本文以「发令台 GUNSTART」为例，记录一条第三条路：业务闭环优先、外部能力可插拔、新技术旁路接入。全文包含版本与环境清单、名额防重与 Shiro 过滤器链等核心代码、以及一份与仓库现状逐项对账的工程化说明——适合当作毕设复盘，也适合当作同类管理系统的起步模板。]]></description><category></category></item><item><title><![CDATA[MySQL 索引超详解：从底层 B+ 树到面试高频考点]]></title><link>https://blog.youkuaiyun.com/yjyyc/article/details/169834846</link><guid>https://blog.youkuaiyun.com/yjyyc/article/details/169834846</guid><author>yjyyc</author><pubDate>Mon, 02 Nov 2026 12:19:24 +0800</pubDate><description><![CDATA[在 MySQL 中，访问表数据只有两种方式：方式原理代价顺序访问全表扫描，从头到尾逐行匹配数据量大时 O (n)，极慢索引访问先查索引树，再定位到行记录一般 O (log n)，快索引的本质，是一棵排好序的、存储了列值与行指针对应关系的数据结构。它以空间换时间，让数据库不用全表扫描就能定位到目标行。可以把索引比作新华字典的音序表：要查 "库" 字，如果不用音序，得从字典第 400 页逐页翻；但如果先查音序表（10 多页），几秒钟就定位到了。索引就是这个 "音序表"。最左列必须出现。]]></description><category></category></item><item><title><![CDATA[基于 Spring AI 的智慧健身管理系统云端部署实践]]></title><link>https://blog.youkuaiyun.com/yjyyc/article/details/169830247</link><guid>https://blog.youkuaiyun.com/yjyyc/article/details/169830247</guid><author>yjyyc</author><pubDate>Mon, 02 Nov 2026 11:12:30 +0800</pubDate><description><![CDATA[系统面向健身房的会员管理、课程预约、训练计划生成与智能问答等场景，后端采用 Spring Boot 3 与 Spring AI 框架，使用 Ollama 本地部署的 bge-m3 模型完成文本向量化，结合 Redis 的 RediSearch 模块实现健身知识库的语义检索，业务数据持久化到 MySQL，大模型对话能力则调用在线 API 以节省服务器资源。其二，在本地开发电脑上关闭 Ollama 服务，完全不影响云端服务器上 AI 功能的运行，因为云端应用连接的是云端服务器本机的 Ollama。]]></description><category></category></item><item><title><![CDATA[《Redis 删除策略详解：过期键清理与内存淘汰》]]></title><link>https://blog.youkuaiyun.com/yjyyc/article/details/168867048</link><guid>https://blog.youkuaiyun.com/yjyyc/article/details/168867048</guid><author>yjyyc</author><pubDate>Fri, 23 Oct 2026 14:05:19 +0800</pubDate><description><![CDATA[Redis 的删除策略围绕“有限内存”与“过期数据”两个核心约束展开：过期键通过惰性删除与定期删除组合清理，内存耗尽时通过淘汰策略保底，大 key 删除用 UNLINK 降低阻塞风险。Redis 实际采用的是“惰性删除 + 定期删除”的组合方案：惰性删除保证被访问到的过期键一定被清除，定期删除作为兜底，清理那些长期不被访问的过期键。定期删除用于弥补惰性删除的不足。这也是为什么有时明明给键设置了过期时间、内存却下降不明显——因为惰性删除只有在键被访问时才会真正删除，未被访问的过期键仍可能短暂占用内存。]]></description><category></category></item><item><title><![CDATA[《滴滴后端开发一面面试复盘—— 22 道高频题详解 · JVM / 线程池 / MySQL / 设计模式 / Spring Boot / 手撕算法》]]></title><link>https://blog.youkuaiyun.com/yjyyc/article/details/168558246</link><guid>https://blog.youkuaiyun.com/yjyyc/article/details/168558246</guid><author>yjyyc</author><pubDate>Tue, 20 Oct 2026 19:22:07 +0800</pubDate><description><![CDATA[虚拟机栈描述的是 Java 方法执行的内存模型，它也是线程私有的，生命周期与线程相同。它与虚拟机栈所不同的是，虚拟机栈为虚拟机执行 Java 方法（也就是字节码）服务，而本地方法栈则为虚拟机使用到的 native 方法服务。由于每个线程都有独立的程序计数器，各线程之间的计数器互不影响、独立存储，因此它属于线程私有的内存区域。程序计数器不会出现 OutOfMemoryError 的情况，因为它的生命周期与线程一致，线程启动时创建、线程结束时销毁，其占用的内存空间非常小且固定。jstack 看线程栈。]]></description><category></category></item><item><title><![CDATA[《java Condition条件变量》]]></title><link>https://blog.youkuaiyun.com/yjyyc/article/details/168443359</link><guid>https://blog.youkuaiyun.com/yjyyc/article/details/168443359</guid><author>yjyyc</author><pubDate>Mon, 19 Oct 2026 14:51:11 +0800</pubDate><description><![CDATA[Condition是包下的，用来替代传统的，配合Lock（通常是）使用，实现线程间的等待 / 唤醒协作。]]></description><category></category></item><item><title><![CDATA[《 代理模式》]]></title><link>https://blog.youkuaiyun.com/yjyyc/article/details/168435512</link><guid>https://blog.youkuaiyun.com/yjyyc/article/details/168435512</guid><author>yjyyc</author><pubDate>Mon, 19 Oct 2026 12:12:18 +0800</pubDate><description><![CDATA[静态代理= 编译期写死，代码重复、难维护；JDK 动态代理= 运行期基于接口生成代理，灵活但要求有接口；CGLIB 动态代理= 运行期基于继承生成子类，无接口也能代理。核心思想一致：代理在目标方法前后 "插入" 增强逻辑，从而实现对已有类的无侵入扩展。]]></description><category></category></item><item><title><![CDATA[Redis]]></title><link>https://blog.youkuaiyun.com/yjyyc/article/details/168142477</link><guid>https://blog.youkuaiyun.com/yjyyc/article/details/168142477</guid><author>yjyyc</author><pubDate>Fri, 16 Oct 2026 18:54:45 +0800</pubDate><description><![CDATA[对这些数据类型的操作都是原子的 —— 追加字符串、增加哈希值、推元素入列表、算集交并差、取排序集最高成员等。，用作数据库、缓存、消息代理和流引擎。：开源（BSD 许可）的。]]></description><category></category></item><item><title><![CDATA[HTTP协议]]></title><link>https://blog.youkuaiyun.com/yjyyc/article/details/168110677</link><guid>https://blog.youkuaiyun.com/yjyyc/article/details/168110677</guid><author>yjyyc</author><pubDate>Fri, 16 Oct 2026 18:33:46 +0800</pubDate><description><![CDATA[HTTP 协议是Hyper Text Transfer Protocol（超文本传输协议）的缩写，是用于服务器与客户端浏览器之间传输超文本数据（文字、图片、视频、音频）的应用层协议。HTTP 是一个属于应用层的协议，同时也是一个双向协议，基于浏览器 - 服务器架构模型进行工作。浏览器与服务器之间基于 http 协议进行通信，浏览器发送请求数据给服务器，服务器根据接收到并处理请求后，向浏览器发送响应信息。]]></description><category></category></item><item><title><![CDATA[脏读 幻读 不可重复读+四种隔离级别]]></title><link>https://blog.youkuaiyun.com/yjyyc/article/details/167903374</link><guid>https://blog.youkuaiyun.com/yjyyc/article/details/167903374</guid><author>yjyyc</author><pubDate>Wed, 14 Oct 2026 18:59:12 +0800</pubDate><description><![CDATA[同一事务内，多次读取同一数据的结果是一致的，不受其他事务提交影响。]]></description><category></category></item><item><title><![CDATA[Spring事物的传播行为有哪些？]]></title><link>https://blog.youkuaiyun.com/yjyyc/article/details/167811117</link><guid>https://blog.youkuaiyun.com/yjyyc/article/details/167811117</guid><author>yjyyc</author><pubDate>Tue, 13 Oct 2026 18:23:19 +0800</pubDate><description><![CDATA[Spring 通过 @Transactional(propagation=...) / TransactionDefinition 定义了 7 种事务传播行为]]></description><category></category></item><item><title><![CDATA[synchronized的理解和锁升级(给static方法加锁和非static方法加锁有什么区别)]]></title><link>https://blog.youkuaiyun.com/yjyyc/article/details/164266196</link><guid>https://blog.youkuaiyun.com/yjyyc/article/details/164266196</guid><author>yjyyc</author><pubDate>Tue, 01 Sep 2026 18:38:50 +0800</pubDate><description><![CDATA[底层：基于对象头 MarkWord 实现，依赖 JVM 的 Monitor 对象，属于。1、修饰普通非 static 方法。2、修饰 static 静态方法。，解决多线程并发安全问题。Class 对象全局唯一，，锁只能升级，不能降级。]]></description><category></category></item></channel></rss>