<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[赤兔码]]></title><description><![CDATA[戎码一生]]></description><link>https://blog.youkuaiyun.com/VicdorLin</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; VicdorLin]]></copyright><item><title><![CDATA[docker报错: client version 1.24 is too old. Minimum supported API version is 1.44]]></title><link>https://blog.youkuaiyun.com/VicdorLin/article/details/156571658</link><guid>https://blog.youkuaiyun.com/VicdorLin/article/details/156571658</guid><author>VicdorLin</author><pubDate>Sun, 04 Jan 2026 16:15:52 +0800</pubDate><description><![CDATA[摘要 Docker Engine v29更新导致API兼容性问题（最低版本提升至1.44），与旧版工具（如Traefik/Spring Boot Buildpacks）使用的API 1.24冲突。提供四种解决方案：1）降级Docker Desktop至v28.5.2最可靠；2）为Traefik设置环境变量临时解决；3）升级项目依赖至兼容版本；4）修改Docker daemon配置（Windows效果有限）。推荐优先采用降级方案确保稳定性。]]></description><category></category></item><item><title><![CDATA[Redis缓存异常场景深度解析：穿透、击穿与雪崩]]></title><link>https://blog.youkuaiyun.com/VicdorLin/article/details/156360395</link><guid>https://blog.youkuaiyun.com/VicdorLin/article/details/156360395</guid><author>VicdorLin</author><pubDate>Sun, 28 Dec 2025 13:48:52 +0800</pubDate><description><![CDATA[缓存穿透是指查询一个数据库中根本不存在的数据，导致每次请求都无法命中缓存，直接穿透到数据库层。场景示例：恶意攻击者使用数据库中不存在的用户ID（如负数或超大数值）频繁请求用户信息接口。缓存击穿是指某个热点key在缓存过期的一瞬间，同时有大量请求涌入，导致所有请求都穿透到数据库。场景示例：双十一秒杀活动中，某个热门商品的缓存突然过期，瞬间数万请求同时到达数据库。缓存雪崩是指大量缓存key在同一时间或短时间内集中过期，导致所有请求直接打到数据库，引起数据库压力激增甚至宕机。场景示例。]]></description><category></category></item><item><title><![CDATA[零成本内网穿透：利用SSH远程端口转发暴露本地服务到公网]]></title><link>https://blog.youkuaiyun.com/VicdorLin/article/details/156360024</link><guid>https://blog.youkuaiyun.com/VicdorLin/article/details/156360024</guid><author>VicdorLin</author><pubDate>Sun, 28 Dec 2025 13:36:23 +0800</pubDate><description><![CDATA[本文介绍了一种零成本的内网穿透方案——利用SSH反向隧道技术将本地服务暴露到公网。该方法特别适合个人开发者快速调试需要对接微信等第三方平台的本地应用。通过简单的SSH命令配置，无需在服务器安装额外软件即可建立稳定穿透通道。文章详细演示了从本地环境准备、SSH隧道建立到服务器安全配置的全流程，并提供了隧道管理技巧和后台常驻方案。相比ngrok等工具，该方案具有零成本、高安全性、即开即用等优势，是个人开发者调试内网服务的理想选择。]]></description><category></category></item><item><title><![CDATA[养活国内大半自研数据库团队的PostgreSQL是什么？架构是怎么样的？]]></title><link>https://blog.youkuaiyun.com/VicdorLin/article/details/154922486</link><guid>https://blog.youkuaiyun.com/VicdorLin/article/details/154922486</guid><author>VicdorLin</author><pubDate>Mon, 17 Nov 2025 01:39:36 +0800</pubDate><description><![CDATA[PostgreSQL是一款功能强大的开源关系型数据库，被誉为&quot;数据库天花板&quot;。它采用多进程架构，包含数据页存储、B-link树索引、共享内存、WAL日志等核心组件，支持复杂数据类型和多种索引。相比MySQL，PostgreSQL原生支持JSON、地理位置、全文搜索等功能，可替代多个中间件。其模块化设计允许自定义数据类型、函数和索引，通过FDW接口查询外部数据源。完整架构包含解析器、优化器、执行器等查询处理链路，以及后台进程保障系统稳定运行，使其成为全能型数据库解决方案。]]></description><category></category></item><item><title><![CDATA[Java自定义集合-基于文件的泛型列表 LocalFileArrayList]]></title><link>https://blog.youkuaiyun.com/VicdorLin/article/details/142367946</link><guid>https://blog.youkuaiyun.com/VicdorLin/article/details/142367946</guid><author>VicdorLin</author><pubDate>Thu, 19 Sep 2024 19:40:20 +0800</pubDate><description><![CDATA[LocalFileArrayList我自己随便起的，没怎么思考，不一定是最适合的名字。搞这东西主要是有些需求用到的数据量太大了，在并不最求效率只最求结果的背景下，用文件来实现列表功能可以解决量大溢出的烦恼，而且还能保留List操作的丝滑手感，觉得有必要记录分享下。在Java中，List是一个非常常用的接口，用于存储元素集合。然而，标准的List实现（如ArrayList或LinkedList）都是基于内存的。在某些情况下，我们可能需要将列表持久化到文件中，以便在程序重启后仍然能够访问这些数据。]]></description><category></category></item><item><title><![CDATA[百度关掉Ai智能回答（保姆级技术文，解决过程完整记录）]]></title><link>https://blog.youkuaiyun.com/VicdorLin/article/details/141028603</link><guid>https://blog.youkuaiyun.com/VicdorLin/article/details/141028603</guid><author>VicdorLin</author><pubDate>Thu, 08 Aug 2024 16:16:07 +0800</pubDate><description><![CDATA[百度搞的这个AI智能回答，真的太欠产品考虑了，非常影响用户体验，今天我们把它干掉！]]></description><category></category></item><item><title><![CDATA[MinIO安装（思路、方法、步骤（以centos8安装为例））]]></title><link>https://blog.youkuaiyun.com/VicdorLin/article/details/140857868</link><guid>https://blog.youkuaiyun.com/VicdorLin/article/details/140857868</guid><author>VicdorLin</author><pubDate>Thu, 01 Aug 2024 21:40:56 +0800</pubDate><description><![CDATA[MinIO 是一个高性能、开源的对象存储系统，旨在提供简单、可扩展的存储解决方案，特别适用于大数据、AI 和 ML 应用。]]></description><category></category></item><item><title><![CDATA[uniapp从入坑到出土（2-初始化你的uniapp项目）]]></title><link>https://blog.youkuaiyun.com/VicdorLin/article/details/140646791</link><guid>https://blog.youkuaiyun.com/VicdorLin/article/details/140646791</guid><author>VicdorLin</author><pubDate>Tue, 23 Jul 2024 21:47:51 +0800</pubDate><description><![CDATA[至此，你已经掌握了使用Vite初始化uniapp项目的方法，同时也对Vue CLI和Vite的构建流程有了更深入的了解。在后续章节中，我们将不再特别提及构建工具，而是聚焦于uniapp的开发和优化，帮助你成为一名真正的uniapp魔法师。]]></description><category></category></item><item><title><![CDATA[uniapp从入坑到出土（1-欢迎来到uniapp大冒险！）]]></title><link>https://blog.youkuaiyun.com/VicdorLin/article/details/140646167</link><guid>https://blog.youkuaiyun.com/VicdorLin/article/details/140646167</guid><author>VicdorLin</author><pubDate>Tue, 23 Jul 2024 21:24:14 +0800</pubDate><description><![CDATA[恭喜你，勇敢的魔法师，你已经成功开始了uniapp大冒险的第一步！随着你对uniapp的深入了解，你将能够创造出更加神奇的应用，为用户提供卓越的体验。在接下来的章节中，我们将探索更多关于uniapp的知识，包括组件、API、以及如何优化性能等。准备好，我们的旅程才刚刚开始！]]></description><category></category></item><item><title><![CDATA[JavaScript快速入门系列-3（函数基础）]]></title><link>https://blog.youkuaiyun.com/VicdorLin/article/details/139664871</link><guid>https://blog.youkuaiyun.com/VicdorLin/article/details/139664871</guid><author>VicdorLin</author><pubDate>Thu, 13 Jun 2024 21:39:12 +0800</pubDate><description><![CDATA[函数，简单来说，是一段可重复使用的代码块，它封装了特定功能，通过名称调用来执行。让我们从最基础的函数定义开始。]]></description><category></category></item><item><title><![CDATA[JavaScript快速入门系列-2（JavaScript语言基础）]]></title><link>https://blog.youkuaiyun.com/VicdorLin/article/details/139664796</link><guid>https://blog.youkuaiyun.com/VicdorLin/article/details/139664796</guid><author>VicdorLin</author><pubDate>Thu, 13 Jun 2024 21:35:33 +0800</pubDate><description><![CDATA[从变量声明到数据类型，再到运算符和控制结构的运用，这些知识是构建复杂程序的基石。接下来，我们将利用这些基础，探索更高级的函数、对象操作，以及如何与浏览器交互，敬请期待！从变量声明到数据类型的掌握，再到运算符和控制结构的运用，你将逐步构建起对这门动态语言的坚实理解。你可以把它想象成一个标签，贴在一个盒子上，盒子里面可以放任何东西——数字、字符串、甚至复杂的对象和数组。是最常用的变量声明方式，但它有一些特殊的规则，比如变量提升（hoisting）和函数作用域/全局作用域的限制，这可能会导致一些意料之外的行为。]]></description><category></category></item><item><title><![CDATA[JavaScript快速入门系列-1（JavaScript简介）]]></title><link>https://blog.youkuaiyun.com/VicdorLin/article/details/138589067</link><guid>https://blog.youkuaiyun.com/VicdorLin/article/details/138589067</guid><author>VicdorLin</author><pubDate>Wed, 08 May 2024 22:59:41 +0800</pubDate><description><![CDATA[1. JavaScript简介1.1 什么是JavaScript1.2 JavaScript的历史与应用1.3 环境搭建：浏览器与Node.js2. JavaScript语言基础2.1 变量声明：let, const, var2.2 数据类型：字符串、数字、布尔值、对象、数组、null与undefined2.3 运算符：算术、比较、逻辑、赋值2.4 控制结构：if...else, switch, for, while, do...while3. 函数基础3.1 函数定义与调用3.2 参数与返回值。]]></description><category></category></item><item><title><![CDATA[Java快速入门系列-11（项目实战与最佳实践）]]></title><link>https://blog.youkuaiyun.com/VicdorLin/article/details/138588917</link><guid>https://blog.youkuaiyun.com/VicdorLin/article/details/138588917</guid><author>VicdorLin</author><pubDate>Wed, 08 May 2024 22:44:37 +0800</pubDate><description><![CDATA[通过以上的内容，我们完整地介绍了项目实战与最佳实践的内容，包括项目规划与需求分析、系统设计考虑、代码实现与重构、性能优化与监控，以及部署与持续集成/持续部署（CI/CD）。项目规划主要包括确定项目的范围、目标和时间表，而需求分析则是明确用户需求、功能和非功能需求。以上是一个简单的部署与持续集成/持续部署的示例代码，通过定义Deployment类来实现系统部署和持续集成/持续部署的功能。以上是一个简单的项目规划与需求分析的示例代码，通过定义ProjectPlanning类来管理项目规划与需求分析的相关信息。]]></description><category></category></item><item><title><![CDATA[Java快速入门系列-10（微服务架构基础）]]></title><link>https://blog.youkuaiyun.com/VicdorLin/article/details/137617288</link><guid>https://blog.youkuaiyun.com/VicdorLin/article/details/137617288</guid><author>VicdorLin</author><pubDate>Thu, 11 Apr 2024 00:43:05 +0800</pubDate><description><![CDATA[Spring Cloud是基于Spring Boot框架打造的微服务全家桶，集成了众多成熟的企业级微服务解决方案，包括服务注册与发现（Eureka）、配置中心（Config Server）、负载均衡（Ribbon）、熔断器（Hystrix）、API Gateway（Zuul/ Gateway）、分布式跟踪（Sleuth & Zipkin）等组件，为开发者提供了一站式的微服务架构支持。：每个微服务不仅包含了业务逻辑，还包含了数据存储、API接口和内部逻辑处理，可以独立部署和运维，降低服务之间的耦合度。]]></description><category></category></item><item><title><![CDATA[Java快速入门系列-9（Spring框架与Spring Boot —— 深度探索及实践指南）]]></title><link>https://blog.youkuaiyun.com/VicdorLin/article/details/137617059</link><guid>https://blog.youkuaiyun.com/VicdorLin/article/details/137617059</guid><author>VicdorLin</author><pubDate>Thu, 11 Apr 2024 00:29:44 +0800</pubDate><description><![CDATA[Spring框架自诞生以来，凭借其独特的设计理念和广泛的适用性，在Java企业级应用开发领域占据主导地位。Spring框架的核心设计理念体现在IoC（Inversion of Control，控制反转）和AOP（Aspect Oriented Programming，面向切面编程）两个关键技术上。IoC通过容器管理对象的生命周期和依赖关系，从而降低耦合度；而AOP则允许我们将横切关注点（如日志、事务管理、权限验证等）从核心业务逻辑中分离出来，实现业务逻辑与系统服务的解耦。]]></description><category></category></item><item><title><![CDATA[Java快速入门系列-8（Web开发基础）]]></title><link>https://blog.youkuaiyun.com/VicdorLin/article/details/137616841</link><guid>https://blog.youkuaiyun.com/VicdorLin/article/details/137616841</guid><author>VicdorLin</author><pubDate>Thu, 11 Apr 2024 00:16:55 +0800</pubDate><description><![CDATA[Servlet是Java平台用于扩展Web服务器功能的组件，通过实现接口或继承抽象类来处理客户端HTTP请求并生成响应。Servlet允许开发者编写Java代码来执行复杂的业务逻辑，并根据请求动态生成内容。Servlet生命周期包含了初始化、服务请求和销毁三个阶段。Servlet实例创建与生命周期当客户端首次发起匹配到Servlet的请求时，Servlet容器（如Tomcat）会检查是否存在该Servlet的实例。如果不存在，则创建Servlet实例，并调用其init()方法进行初始化。]]></description><category></category></item><item><title><![CDATA[Java快速入门系列-7（测试与调试）]]></title><link>https://blog.youkuaiyun.com/VicdorLin/article/details/137616643</link><guid>https://blog.youkuaiyun.com/VicdorLin/article/details/137616643</guid><author>VicdorLin</author><pubDate>Wed, 10 Apr 2024 23:59:55 +0800</pubDate><description><![CDATA[本章详细介绍了Java中的测试与调试技巧。单元测试是验证代码正确性的基础，而集成测试和系统测试则确保了整个系统的稳定性和可靠性。通过本章的学习，读者应该能够掌握Java中测试和调试的基本方法，并能够应用到实际的开发工作中去。单元测试是软件开发中最基本的测试形式，它的目的是验证每个独立的软件模块（即单元）是否正确地执行其预定的功能。本章将详细介绍Java中的测试与调试技巧，包括单元测试、集成测试、系统测试以及调试工具的使用。系统测试则是在完整的软件系统上进行的测试，目的是验证整个系统的行为是否符合需求。]]></description><category></category></item><item><title><![CDATA[Java快速入门系列-6（数据库编程与JDBC）]]></title><link>https://blog.youkuaiyun.com/VicdorLin/article/details/137616564</link><guid>https://blog.youkuaiyun.com/VicdorLin/article/details/137616564</guid><author>VicdorLin</author><pubDate>Wed, 10 Apr 2024 23:58:20 +0800</pubDate><description><![CDATA[本章主要介绍了SQL的基础知识以及如何通过Java的JDBC API与数据库进行交互，包括连接数据库、执行SQL语句、处理结果集和事务管理等内容。数据库连接池是为了解决频繁创建和关闭数据库连接带来的性能开销而产生的技术。Java Database Connectivity (JDBC) 是Java中用来同数据库进行交互的一套API。通过JDBC，Java程序可以执行SQL语句，处理结果集，以及进行事务管理。它包含了一系列操作数据的命令，如创建数据库和表、插入、查询、更新和删除数据等。]]></description><category></category></item><item><title><![CDATA[Java快速入门系列-5（Java进阶特性）]]></title><link>https://blog.youkuaiyun.com/VicdorLin/article/details/137409357</link><guid>https://blog.youkuaiyun.com/VicdorLin/article/details/137409357</guid><author>VicdorLin</author><pubDate>Fri, 05 Apr 2024 21:10:07 +0800</pubDate><description><![CDATA[希望读者通过本章的学习，能够深入理解这些特性，并在实际项目中编写出更加高效、更加健壮的Java应用程序，以应对日益复杂的业务需求和挑战。随着Java版本的不断更新，更多新特性被引入，例如Java 16中引入Record类简化POJO定义，Java 17中引入sealed接口和类以增强类型安全，Java 21中可能有更多针对并发、模块化等方面的增强，此处仅作提及，具体细节需查阅官方文档以获得最新信息。Java 7以后，NIO.2对I/O系统进行了改进，提供了更高效的文件和网络I/O操作。]]></description><category></category></item><item><title><![CDATA[Java快速入门系列-4（面向对象编程）]]></title><link>https://blog.youkuaiyun.com/VicdorLin/article/details/137409129</link><guid>https://blog.youkuaiyun.com/VicdorLin/article/details/137409129</guid><author>VicdorLin</author><pubDate>Fri, 05 Apr 2024 20:59:32 +0800</pubDate><description><![CDATA[是不能直接实例化的类，它主要用于被其他类继承。抽象类可以包含抽象方法（没有具体实现的方法），子类必须实现这些抽象方法才能实例化。]]></description><category></category></item></channel></rss>