<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Lucis__的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Lucis__</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Lucis__]]></copyright><item><title><![CDATA[C++20概念约束—现代C++模板约束的演进与重构]]></title><link>https://blog.youkuaiyun.com/Lucis__/article/details/170240999</link><guid>https://blog.youkuaiyun.com/Lucis__/article/details/170240999</guid><author>Lucis__</author><pubDate>Sat, 07 Nov 2026 18:33:40 +0800</pubDate><description><![CDATA[C++20引入概念（concepts）作为模板参数的编译时约束机制，通过concept关键字定义类型要求，支持原子约束、逻辑组合与嵌套要求，显著提升泛型编程的可读性与错误提示精度。结合requires表达式，可实现对操作、成员类型及返回值的精确验证。概念支持合取（&amp;&amp;）、析取（||）与非（!），并遵循偏序规则进行重载决议，优先选择更受约束的版本。相比旧有的SFINAE机制，Concepts提供更清晰、可维护的接口约束，是现代C++泛型编程的核心基石。]]></description><category></category></item><item><title><![CDATA[现代C++性能突破：程序编译期的元编程支持]]></title><link>https://blog.youkuaiyun.com/Lucis__/article/details/169643318</link><guid>https://blog.youkuaiyun.com/Lucis__/article/details/169643318</guid><author>Lucis__</author><pubDate>Sun, 01 Nov 2026 00:01:41 +0800</pubDate><description><![CDATA[本文系统阐述了C++模板元编程的演进历程，涵盖其背景、核心概念与基础语法，重点解析编译期计算、类型萃取与SFINAE等关键技术。结合C++11至C++20的特性优化，如constexpr、if constexpr、概念（concepts）与模块，展示了如何简化复杂逻辑、提升可读性与编译效率。文章指出，尽管模板元编程带来编译时间长、调试困难等挑战，但其零运行时开销与类型安全优势，使其成为构建高性能泛型库的核心技术，是掌握现代C++高阶开发的必经之路。]]></description><category></category></item><item><title><![CDATA[Redis持久化机制解析]]></title><link>https://blog.youkuaiyun.com/Lucis__/article/details/168959491</link><guid>https://blog.youkuaiyun.com/Lucis__/article/details/168959491</guid><author>Lucis__</author><pubDate>Sat, 24 Oct 2026 12:29:55 +0800</pubDate><description><![CDATA[Redis通过RDB和AOF两种持久化机制防止数据丢失。RDB以快照形式定时备份，恢复快但可能丢数据；AOF记录所有写命令，支持秒级持久化，结合重写机制压缩文件。生产环境推荐混合使用，兼顾性能与可靠性。]]></description><category></category></item><item><title><![CDATA[Redis为什么这么快？一文读懂Redis数据类型和单线程架构]]></title><link>https://blog.youkuaiyun.com/Lucis__/article/details/168341419</link><guid>https://blog.youkuaiyun.com/Lucis__/article/details/168341419</guid><author>Lucis__</author><pubDate>Sun, 18 Oct 2026 17:09:14 +0800</pubDate><description><![CDATA[本文系统介绍了Redis的核心机制：基于多种内部编码优化数据结构，实现内存与性能的平衡；采用单线程模型，依托纯内存访问、非阻塞I/O和避免线程开销，达成每秒万级高性能；同时强调其对命令执行效率的严格要求，确保服务响应及时。理解这些设计原理，是高效使用Redis的基础。]]></description><category></category></item><item><title><![CDATA[深入理解程序链接与加载—从动静态链接到库加载]]></title><link>https://blog.youkuaiyun.com/Lucis__/article/details/167496969</link><guid>https://blog.youkuaiyun.com/Lucis__/article/details/167496969</guid><author>Lucis__</author><pubDate>Sun, 11 Oct 2026 15:15:19 +0800</pubDate><description><![CDATA[本文系统阐述了静态链接与动态链接的原理与实现机制。静态链接在编译时将目标文件和库合并，通过重定位表修正函数地址；而动态链接将链接推迟至运行时，利用全局偏移表（GOT）和位置无关代码（PIC）实现库的共享与灵活加载。ELF格式支持虚拟地址统一编址，进程通过页表映射实现动态库按需加载与内存共享。动态链接通过延迟绑定（PLT）优化性能，提升资源利用率与代码复用性。理解这些机制是掌握程序加载、运行及系统级开发的关键。]]></description><category></category></item><item><title><![CDATA[编译链接全链路解析：ELF形成到可执行加载的发展历程]]></title><link>https://blog.youkuaiyun.com/Lucis__/article/details/166990816</link><guid>https://blog.youkuaiyun.com/Lucis__/article/details/166990816</guid><author>Lucis__</author><pubDate>Fri, 02 Oct 2026 16:57:26 +0800</pubDate><description><![CDATA[本文系统阐述了从源码编译到可执行文件加载的全过程，聚焦Linux下GCC编译链接机制与ELF文件结构。通过分析目标文件（.o）生成、节（Section）与段（Segment）的划分及合并原则，揭示了节头表（链接视图）与程序头表（执行视图）的功能差异。重点解析了.text、.data、.bss、.rodata等关键节的作用，以及ELF格式如何支持动态链接与高效内存加载，为深入理解进程地址空间与运行时机制奠定基础。]]></description><category></category></item><item><title><![CDATA[Linux动静态库制作使用完整指南]]></title><link>https://blog.youkuaiyun.com/Lucis__/article/details/166689435</link><guid>https://blog.youkuaiyun.com/Lucis__/article/details/166689435</guid><author>Lucis__</author><pubDate>Sat, 26 Sep 2026 20:48:32 +0800</pubDate><description><![CDATA[本文详解Linux下静态库（.a）与动态库（.so）的制作与使用。静态库在编译期被完整复制到可执行文件，运行无需依赖；动态库则在运行时由链接器加载，支持多程序共享，节省内存与磁盘空间。通过Makefile实现库的编译打包，结合-I、-L、-l参数完成链接，并探讨了编译与运行时搜索路径差异。静态库部署简单但体积大，动态库便于升级却需正确配置运行路径。理解链接与加载机制是掌握库应用的关键。]]></description><category></category></item><item><title><![CDATA[HTTPS协议？HTTP从明文传输到加密通信的发展演进]]></title><link>https://blog.youkuaiyun.com/Lucis__/article/details/166011040</link><guid>https://blog.youkuaiyun.com/Lucis__/article/details/166011040</guid><author>Lucis__</author><pubDate>Sun, 20 Sep 2026 00:24:20 +0800</pubDate><description><![CDATA[本文系统阐述HTTPS安全机制，指出HTTP明文传输易遭运营商劫持与中间人攻击。通过引入对称加密保障效率、非对称加密实现密钥安全交换，并结合数据指纹与数字签名技术，最终构建出基于证书认证的加密方案。该方案有效解决了身份验证与防篡改问题，实现了通信机密性、完整性和真实性的统一，使HTTPS成为保障互联网信息安全的核心协议。]]></description><category></category></item><item><title><![CDATA[基于责任链模式的消息队列—异步处理流水线的最佳实践]]></title><link>https://blog.youkuaiyun.com/Lucis__/article/details/165126247</link><guid>https://blog.youkuaiyun.com/Lucis__/article/details/165126247</guid><author>Lucis__</author><pubDate>Sun, 13 Sep 2026 12:51:33 +0800</pubDate><description><![CDATA[本文系统阐述了Linux SystemV消息队列的机制与实现，涵盖其通信原理、内核数据结构及核心接口，并通过C++封装实现进程间异步通信。在此基础上，引入责任链模式，构建可扩展的文本处理流水线，实现消息的格式化、持久化与自动备份。二者结合，既解耦了进程通信，又实现了消费逻辑的灵活编排，为异步任务处理提供了高效、可维护的架构方案。]]></description><category></category></item><item><title><![CDATA[mmap文件映射：构建Linux内核高性能文件I/O的基石]]></title><link>https://blog.youkuaiyun.com/Lucis__/article/details/164402779</link><guid>https://blog.youkuaiyun.com/Lucis__/article/details/164402779</guid><author>Lucis__</author><pubDate>Sun, 06 Sep 2026 00:46:35 +0800</pubDate><description><![CDATA[本文介绍了Linux内存映射系统调用mmap，解析其参数、返回值和映射原理，并通过写入映射、读取映射及模拟实现malloc三个实例，展示mmap减少数据拷贝、提升I/O性能的优势，强调其在文件读写、共享内存和内存管理中的核心作用。]]></description><category></category></item><item><title><![CDATA[搭建brpc工业级C++框架实现远程调用]]></title><link>https://blog.youkuaiyun.com/Lucis__/article/details/163973285</link><guid>https://blog.youkuaiyun.com/Lucis__/article/details/163973285</guid><author>Lucis__</author><pubDate>Sat, 22 Aug 2026 21:11:42 +0800</pubDate><description><![CDATA[本文介绍了Apache BRPC框架的安装与使用方法。BRPC是一个高性能、多协议的C++ RPC框架，支持HTTP/2、gRPC、Redis等20多种协议。文章详细说明了安装依赖项（如Protobuf、SSL）和编译BRPC的步骤，并展示了核心功能模块：服务端类、客户端类、HTTP协议支持及定时任务调度。通过一个Echo服务的实现示例，演示了同步和异步调用的编程模式，包括proto文件定义、服务端实现和客户端调用。BRPC内置运维监控页面，提供连接数、QPS等实时指标，适用于构建高性能分布式系统。]]></description><category></category></item><item><title><![CDATA[如何实现长连接通信机制？Websocket的最佳实践]]></title><link>https://blog.youkuaiyun.com/Lucis__/article/details/163779467</link><guid>https://blog.youkuaiyun.com/Lucis__/article/details/163779467</guid><author>Lucis__</author><pubDate>Sat, 15 Aug 2026 21:09:26 +0800</pubDate><description><![CDATA[本文介绍了WebSocket协议及其实现。WebSocket是HTML5提供的全双工通信协议，解决了传统HTTP轮询效率低的问题，适用于即时通讯等实时场景。文章详细解析了WebSocket协议原理、报文格式，并重点介绍了WebSocket++这一C++开源库，包括其核心接口、日志系统和HTTP处理功能。通过一个简单的WebSocket服务器实现示例，展示了如何建立连接、处理消息和HTTP请求。最后通过浏览器客户端测试验证了服务器的回显功能，体现了WebSocket在实时通信中的高效性。]]></description><category></category></item><item><title><![CDATA[如何快速上手httplib？利用httplib搭建HTTP服务器]]></title><link>https://blog.youkuaiyun.com/Lucis__/article/details/163588855</link><guid>https://blog.youkuaiyun.com/Lucis__/article/details/163588855</guid><author>Lucis__</author><pubDate>Sat, 08 Aug 2026 19:18:34 +0800</pubDate><description><![CDATA[cpp-httplib是一个轻量级C++ HTTP库，提供简洁API支持HTTP服务器/客户端开发。文章首先介绍了其主要特性：单头文件设计、跨平台支持、同步/异步操作、HTTP/1.1协议等。随后详细说明了安装步骤，包括下载源码和部署头文件。重点解析了核心接口架构，包含Request/Response数据结构及Server/Client类。通过示例代码展示了如何搭建HTTP服务器处理GET请求、构建静态文件服务，并实现客户端请求功能。该库以极简设计实现完整HTTP通信能力，适合快速开发网络应用。]]></description><category></category></item><item><title><![CDATA[一文搞定Ubuntu环境部署Docker容器及远程连接]]></title><link>https://blog.youkuaiyun.com/Lucis__/article/details/163392342</link><guid>https://blog.youkuaiyun.com/Lucis__/article/details/163392342</guid><author>Lucis__</author><pubDate>Sat, 01 Aug 2026 19:17:25 +0800</pubDate><description><![CDATA[Docker是一个开源的容器化平台，可打包应用及其依赖环境，实现跨平台部署。本文详细介绍了Docker的安装配置流程：包括更新系统、安装依赖、配置官方仓库、安装核心组件等步骤，并验证安装结果。重点演示了如何基于Ubuntu容器搭建C++开发环境（安装编译器、库和SSH服务），通过端口映射实现远程连接开发。Docker解决了环境一致性问题，使开发部署更高效可靠，其容器化技术正重塑软件开发流程。]]></description><category></category></item><item><title><![CDATA[极差不超过定值的最长子数组—滑动窗口+deque线性优化]]></title><link>https://blog.youkuaiyun.com/Lucis__/article/details/163191569</link><guid>https://blog.youkuaiyun.com/Lucis__/article/details/163191569</guid><author>Lucis__</author><pubDate>Sat, 25 Jul 2026 16:16:06 +0800</pubDate><description><![CDATA[本文探讨了如何寻找最长连续子数组，使得其任意两元素绝对差不超过给定限制值limit。通过将问题转化为维护滑动窗口内的极差，提出了基于双端队列(deque)的高效算法。算法使用两个单调队列分别动态维护窗口的最大值和最小值，确保极差始终≤limit。左指针在窗口不合法时移动，右指针逐步扩展窗口，时间复杂度为O(n)。该解法是滑动窗口与单调队列结合的经典应用，适用于各类动态数据统计问题。]]></description><category></category></item><item><title><![CDATA[基于Cache替换算法的LRU缓存实现]]></title><link>https://blog.youkuaiyun.com/Lucis__/article/details/162992821</link><guid>https://blog.youkuaiyun.com/Lucis__/article/details/162992821</guid><author>Lucis__</author><pubDate>Sat, 18 Jul 2026 15:32:00 +0800</pubDate><description><![CDATA[LRU（最近最少使用）是一种缓存替换算法，通过淘汰最久未使用的数据来管理有限缓存空间。本文介绍了LRU缓存的实现方法：结合双向链表和哈希表，前者维护数据访问顺序（最近访问移至头部），后者提供O(1)的快速查找。具体实现中，get操作通过哈希表定位数据并调整链表位置；put操作更新或新增数据，若缓存满则删除尾部最久未用数据。这种结构完美平衡了快速访问和时序维护的需求，时间复杂度均为O(1)，被广泛应用于多级存储系统中。]]></description><category></category></item><item><title><![CDATA[快速选择算法求解TopK：基于快排的思维跃迁]]></title><link>https://blog.youkuaiyun.com/Lucis__/article/details/162788107</link><guid>https://blog.youkuaiyun.com/Lucis__/article/details/162788107</guid><author>Lucis__</author><pubDate>Sat, 11 Jul 2026 16:34:42 +0800</pubDate><description><![CDATA[本文介绍了快速选择算法用于高效求解数组中第k大元素的问题。该算法基于快速排序思想，通过选择基准值将数组分区，仅递归处理包含目标的那一侧，将时间复杂度优化至O(n)。文章详细阐述了算法原理、图解过程和代码实现，重点说明了升序分区策略和递归终止条件，并指出该算法在数据量大时相比排序和堆方法更具优势，适用于数据库、机器学习等大规模数据处理场景。]]></description><category></category></item><item><title><![CDATA[全排列—回溯剪枝的决策树艺术]]></title><link>https://blog.youkuaiyun.com/Lucis__/article/details/162591574</link><guid>https://blog.youkuaiyun.com/Lucis__/article/details/162591574</guid><author>Lucis__</author><pubDate>Sun, 05 Jul 2026 18:24:06 +0800</pubDate><description><![CDATA[本文介绍了解决包含重复数字的全排列问题的回溯剪枝算法。核心思路是：1) 先排序数组使相同元素相邻；2) 通过回溯构建决策树生成所有排列；3) 关键剪枝策略要求相同元素必须按数组原始顺序选取以避免重复排列。文章详细解析了算法实现，包括排序预处理、回溯搜索过程以及visited数组标记已用元素的剪枝条件。该方法通过固定重复元素的选取顺序实现高效去重，掌握这一排序+回溯+剪枝的方法论可推广解决各类排列组合问题。]]></description><category></category></item><item><title><![CDATA[二维前缀DP求解矩阵区域和]]></title><link>https://blog.youkuaiyun.com/Lucis__/article/details/162364464</link><guid>https://blog.youkuaiyun.com/Lucis__/article/details/162364464</guid><author>Lucis__</author><pubDate>Sat, 27 Jun 2026 17:09:34 +0800</pubDate><description><![CDATA[本文介绍了利用二维前缀和求解矩阵区域和问题的方法。给定m×n矩阵mat和整数k，需要为每个位置(i,j)计算以它为中心、边长为2k+1的正方形区域元素和（边界超出时截断）。解法核心是构建前缀和矩阵dp，其中dp[i][j]表示从(0,0)到(i-1,j-1)的矩形和，通过容斥原理递推计算：dp[i][j] = dp[i-1][j] + dp[i][j-1] - dp[i-1][j-1] + mat[i-1][j-1]。查询时再次应用容斥原理，用四个前缀和O(1)求出目标区域和。]]></description><category></category></item><item><title><![CDATA[最长重复子串：哈希+二分优化算法]]></title><link>https://blog.youkuaiyun.com/Lucis__/article/details/162169766</link><guid>https://blog.youkuaiyun.com/Lucis__/article/details/162169766</guid><author>Lucis__</author><pubDate>Sun, 21 Jun 2026 15:47:15 +0800</pubDate><description><![CDATA[本文介绍了求解字符串中最长重复子串的两种方法。暴力枚举法通过双重循环检查所有子串，时间复杂度为O(n^3)，效率较低。优化方法采用哈希+二分策略：利用重复子串长度的单调性进行二分查找，每次检查时用哈希集合存储指定长度的所有子串，若发现重复即返回。该方法将时间复杂度优化至O(NlogN)，是处理此类字符串问题的有效方案。文章详细说明了两种方法的实现步骤和复杂度分析，突出了哈希+二分算法在效率上的显著优势。]]></description><category></category></item></channel></rss>