<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Zhenyu_Coder的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Zhenyu_Coder</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Zhenyu_Coder]]></copyright><item><title><![CDATA[Redis]]></title><link>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/146998219</link><guid>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/146998219</guid><author>Zhenyu_Coder</author><pubDate>Sat, 12 Apr 2025 16:08:06 +0800</pubDate><description><![CDATA[本篇文字详细介绍Redis、5种常见数据结构、主从复制、持久化（RDB、AOF）、事务、哨兵、集群、缓存（缓存预热, 缓存穿透, 缓存雪崩 和 缓存击穿）]]></description><category></category></item><item><title><![CDATA[仿Spdlog日志系统项目]]></title><link>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/145839557</link><guid>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/145839557</guid><author>Zhenyu_Coder</author><pubDate>Wed, 26 Feb 2025 00:03:42 +0800</pubDate><description><![CDATA[参考开源项目Spdlog，实现日志库]]></description><category></category></item><item><title><![CDATA[【高阶数据结构（一）】：LRU Cache]]></title><link>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/145463397</link><guid>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/145463397</guid><author>Zhenyu_Coder</author><pubDate>Wed, 05 Feb 2025 23:27:54 +0800</pubDate><description><![CDATA[LRU概念、LRU实现机制、以力扣（146. LRU 缓存）实现所有操作（增删查改）时间复杂度为O(1)]]></description><category></category></item><item><title><![CDATA[Mysql：数据库]]></title><link>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/145357294</link><guid>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/145357294</guid><author>Zhenyu_Coder</author><pubDate>Wed, 05 Feb 2025 22:57:01 +0800</pubDate><description><![CDATA[在mysql中，不仅仅物理磁盘上存在的表结构叫表，中间筛选出来的，以及最终结果也是逻辑上的表。而口语中思的数据库指数据在磁盘上存取的一套解决方案（create databases创建出来的数据库）日常口语中的数据库其实是指在磁盘或内存中存储的特定组织结构的数据。修改表的结构有，比如字段名字，字段大小，字段类型，表的字符集类型，表的存储引擎等等。存储引擎是：数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法（目录下的一个目录文件，而建表本质就是该该目录下的一些普通文件。]]></description><category></category></item><item><title><![CDATA[【Linux 网络 (五)】Tcp/Udp协议]]></title><link>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/144093688</link><guid>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/144093688</guid><author>Zhenyu_Coder</author><pubDate>Mon, 23 Dec 2024 17:53:11 +0800</pubDate><description><![CDATA[本篇文章主要介绍TCP/Udp报头相关字段，以及tcp可靠性保证机制：确认应答信号、重发机制、连接管理、窗口控制、流量控制、拥塞控制；以及tcp连接管理（3次握手，4次挥手，及相关状态转变细节）]]></description><category></category></item><item><title><![CDATA[【Linux 网络 (三)】：https协议加密解密分析 —— 秘钥协商]]></title><link>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/144635384</link><guid>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/144635384</guid><author>Zhenyu_Coder</author><pubDate>Mon, 23 Dec 2024 17:50:58 +0800</pubDate><description><![CDATA[本篇博客主要介绍加密、解密、常见加密方式（对称加密和非对称加密）、数据摘要 && 数据指纹、数字签名、HTTPS 的⼯作过程探究（加密流程）]]></description><category></category></item><item><title><![CDATA[Linux通信System V：消息队列 & 信号量]]></title><link>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/139507339</link><guid>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/139507339</guid><author>Zhenyu_Coder</author><pubDate>Sat, 21 Dec 2024 00:22:15 +0800</pubDate><description><![CDATA[System V版本基于消息队列和信号量的通信方式，以及OS如何管理ipc资源]]></description><category></category></item><item><title><![CDATA[Linux文件：动静态库制作 & 动态库链接原理解析]]></title><link>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/139145326</link><guid>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/139145326</guid><author>Zhenyu_Coder</author><pubDate>Fri, 20 Dec 2024 21:31:53 +0800</pubDate><description><![CDATA[动静态库制作、动态库链接原理解析、链接库报错原理解析]]></description><category></category></item><item><title><![CDATA[【Linux网络 (二)】套接字编程]]></title><link>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/143983185</link><guid>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/143983185</guid><author>Zhenyu_Coder</author><pubDate>Sat, 23 Nov 2024 11:39:35 +0800</pubDate><description><![CDATA[本篇文章将会详细介绍套接字概念，以及TCP/UDP套接字编程接口]]></description><category></category></item><item><title><![CDATA[Mysql数据库约束]]></title><link>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/142719550</link><guid>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/142719550</guid><author>Zhenyu_Coder</author><pubDate>Sat, 05 Oct 2024 23:06:41 +0800</pubDate><description><![CDATA[数据库是用户数据的最后一道保护屏障，所以数据库存在大量的约束，保证数据库中数据的完整性和可预期性。数据库中，数据类型本身就是一种约束，除此在外还有： null/not null，default， comment，zerofill，primary key，auto_increment，unique key。]]></description><category></category></item><item><title><![CDATA[Mysql：数据库和表增删查改基本语句]]></title><link>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/142718429</link><guid>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/142718429</guid><author>Zhenyu_Coder</author><pubDate>Sat, 05 Oct 2024 21:37:54 +0800</pubDate><description><![CDATA[创建数据库本质就是创建一个目录（ubuntu，创建的目录文件存放在后续创建表本质就是在该目录下创建文件（不同存储引擎，会创建的文件数目是不同的）！编码集是mysql存储数据时的编码格式。在mysql中，经常需要进程数据比较操作，但比较的前提是数据先被读出来。而校验集就是mysql读取数据时采用的编码格式。]]></description><category></category></item><item><title><![CDATA[C++：类型转换（static_cast、reinterpret_cast、const_cast、dynamic_cast）、RTTI]]></title><link>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/138418301</link><guid>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/138418301</guid><author>Zhenyu_Coder</author><pubDate>Sun, 22 Sep 2024 10:47:34 +0800</pubDate><description><![CDATA[由于C语言两种类型转换方式都存在缺陷：隐式类型转换会导致诸如数据精度丢失等问题；而显示类型转化代码不清晰。所以C++在兼容C的基础之上，增加了4中强制类型转换：static_cast、reinterpret_cast、const_cast、dynamic_cast。
RTTI：Run-time Type identification的简称，即：运行时类型识别。typeid运算符dynamic_cast运算符decltype。]]></description><category></category></item><item><title><![CDATA[C++11新增特性：智能指针（RAII）]]></title><link>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/142430796</link><guid>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/142430796</guid><author>Zhenyu_Coder</author><pubDate>Sun, 22 Sep 2024 10:35:34 +0800</pubDate><description><![CDATA[在C++的发展史中，一个出现了4种智能指针，依次为auto_ptr、unique_ptr、shared_ptr、weak_ptr（weak_ptr不符合RAII思想，用于对shared_ptr的补贴）同理，n1的引用计数也更新为2！但是_next属于n2的成员，n1释放了，_next才会析构，而n2由_prev管理，_prev属于n1成员，此时就发生了循环引用，谁也不会释放。weak_ptr不符合RAII，不参与引用计数，仅是对 shared_ptr 所管理对象的一个非拥有性引用，但可以像指针一样使用！]]></description><category></category></item><item><title><![CDATA[C++：异常]]></title><link>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/142316042</link><guid>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/142316042</guid><author>Zhenyu_Coder</author><pubDate>Tue, 17 Sep 2024 22:45:00 +0800</pubDate><description><![CDATA[assert断言。比如程序发送段错误时，会触发assert，导致程序直接退出。错误码。程序异常返回错误码，虽然每种错误码背后对于一类错误，但程序员还是无法明确错误原因，以及错误位置，需要程序员自身去查找！所有C++引入了异常机制。当一个函数发生无法处理的错误后，会抛出异常，让函数的直接或间接调用者对该异常进行捕获处理！！C++通过throw抛出异常，当一段段程序可能抛出错误，捕获异常的方式采用try和catch关键字。其中try中存放可能抛出异常的代码，而try中的代码也被称为保护代码；]]></description><category></category></item><item><title><![CDATA[C++11新增特性：lambda表达式、function包装器、bind绑定]]></title><link>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/142312424</link><guid>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/142312424</guid><author>Zhenyu_Coder</author><pubDate>Tue, 17 Sep 2024 22:00:00 +0800</pubDate><description><![CDATA[在c++98中，我们使用sort对一段自定义类型进行排序的时候，每次都需要传一个仿函数，即手写一个完整的类。甚至有时需要同时实现排升序和降序，就需要各自手写一个类，非常不方便！所以C++11引入了lambda表达式！lamaba是一个匿名函数对象，是一个可调用对象，表达式本质上也是一个类（vs中类名为lambda_）,并实现了operator()。]]></description><category></category></item><item><title><![CDATA[如何快速判断一个数是否为2的倍数？（正整数）]]></title><link>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/141965980</link><guid>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/141965980</guid><author>Zhenyu_Coder</author><pubDate>Sat, 07 Sep 2024 00:59:36 +0800</pubDate><description><![CDATA[牛牛有一个数组，里面的数可能不相等，现在他想把数组变为：所有的数都相等。牛牛可以进行的操作是：将数组中的任意一个数改为这个数的两倍。首先，如果一个数是2的倍数，此时该数都对应的二进制只存在唯一 一个1（比如8对应1000）。前面以及提到过，如果个数是2的倍数，此时该数的二进制只存在唯一的1，其余全为0。所以如果一个数为2的倍数，此时x&-x得到的结果任然为x。所以如果一个数为2的倍数，此时x & (x - 1)=0！，一旦出现模2结果非0的情况，则表明该数不是2的倍数！]]></description><category></category></item><item><title><![CDATA[C++11重大新增特性：左值引用 & 右值引用 & 移动构造 & 移动赋值]]></title><link>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/137753388</link><guid>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/137753388</guid><author>Zhenyu_Coder</author><pubDate>Wed, 04 Sep 2024 14:30:41 +0800</pubDate><description><![CDATA[如果能想要限制某些默认函数的生成，在C++98中，是该函数设置成private，并且只声明补丁已，这样只要其他人想要调用就会报错。（这很好理解，以移动构造和移动赋值为例，其最重要的功能就是转移右值的资源。在C++11中更简单，只需在该函数声明加上=delete即可，该语法指示编译器不生成对应函数的默认版本，称=delete修饰的函数为删除函数。只有当自定义类型中存在资源的深拷贝时，此时才能移动构造和移动赋值的价值。类似于拷贝构造函数，移动构造函数的第一个参数是该类类型的引用，不同的是引用参数是一个右值。]]></description><category></category></item><item><title><![CDATA[C++11新增特性：列表初始化（std::initializer_list）& decltype、auto、nullptr、范围for]]></title><link>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/137747363</link><guid>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/137747363</guid><author>Zhenyu_Coder</author><pubDate>Wed, 04 Sep 2024 14:13:44 +0800</pubDate><description><![CDATA[C++11扩大了初始化列表的使用范围，可用于所有的内置类型和自定义类型的初始化。在C++11中，初始化类列表可用于容器默认构造函数和拷贝复制函数的统一初始值设定！但获取到的变量类型是以字符串形式显示的，无法作为类型定义变量继续使用。在C++98之前，{}一般被用于对数组或结构体元素的统一的列表初始值设定。作为参数的构造函数和赋值重载函数，这样初始化容器对象就更方便了。对象中的值，然后调用容器插入相关接口插入数据。可以将变量类型声明为表达式的指定类型！在C++11中，几乎所有的容器都新增了。]]></description><category></category></item><item><title><![CDATA[【Linux 网络(一)】初识网络，理解TCP/IP五层模型]]></title><link>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/140775561</link><guid>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/140775561</guid><author>Zhenyu_Coder</author><pubDate>Tue, 27 Aug 2024 21:09:31 +0800</pubDate><description><![CDATA[本篇文章将会介绍网络产生的背景、OSI网络7层、已经网络传递过程中报文解包封装的宏观结构]]></description><category></category></item><item><title><![CDATA[Linux 操作系统：基于环形队列的生产者消费者模型]]></title><link>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/141052809</link><guid>https://blog.youkuaiyun.com/Zhenyu_Coder/article/details/141052809</guid><author>Zhenyu_Coder</author><pubDate>Fri, 09 Aug 2024 21:40:19 +0800</pubDate><description><![CDATA[环形队列采用数组模拟，用模运算来模拟环状特性。和基于阻塞队列的生产者消费者模型不同的是，环形队列将公共资源分成多份使用，而阻塞队列则是将公共资源当作一个整体使用！！Linux OS：线程封装 | RAII封装锁 | 随机数运算任务封装。]]></description><category></category></item></channel></rss>