- 博客(106)
- 收藏
- 关注
原创 go-mysql-transfer 伪装从库实现 MySQL 到 Redis 数据同步(完整配置)
这篇文章详细介绍了go-mysql-transfer工具的安装配置与使用,通过go-mysql-transfer实现 MySQL 数据到 Redis 的实时同步。文章提供了详细的命令操作步骤和配置文件示例,并包含同步测试的实际操作过程。
2025-10-31 13:30:11
1438
原创 缓存异常:缓存穿透、缓存击穿、缓存雪崩
缓存穿透通过布隆过滤器或缓存空值拦截无效请求;缓存击穿采用永不过期策略或分布式锁防止热点数据失效;缓存雪崩通过集群部署、随机过期时间和预热机制避免集中失效。
2025-10-31 13:14:22
1299
原创 MySQL 高并发场景下的缓存策略:主从复制、读写分离及一致性保障
MySQL缓存方案通过主从复制、读写分离、连接池等技术提升访问性能,同时引入缓存层(如Redis)解决热点数据访问效率问题。方案核心在于管理MySQL与缓存的数据一致性,适用于读多写少的高并发场景。
2025-10-30 13:37:17
1187
原创 MVCC 多版本并发控制、并发死锁
摘要:本文深入解析了MySQL的MVCC机制和并发死锁问题。MVCC通过Read View和版本链实现一致性非锁定读,RC和RR隔离级别的区别在于Read View创建时机不同。MVCC判断版本可见性时,会检查事务ID与活跃事务列表的关系。
2025-10-30 13:26:40
1007
原创 MySQL InnoDB锁机制解析:保证事务隔离与数据一致性
MySQL InnoDB的锁机制主要分为全局锁、表级锁和行级锁三类。全局锁锁定整个数据库实例,表级锁包括显式表锁、元数据锁、意向锁和自增锁,而行级锁是核心难点,包含记录锁、间隙锁、临键锁和插入意向锁等类型。 锁的兼容性遵循特定规则:排他锁与其他所有锁冲突,意向锁之间兼容但会与表级锁冲突,自增锁仅与意向锁兼容。在读写操作中,查询操作通常使用MVCC机制实现非阻塞读,而写操作则自动加排他锁保证数据一致性。不同隔离级别下锁的行为有所差异,合理使用锁机制
2025-10-28 10:21:58
1248
原创 MySQL 的事务机制与并发读异常
摘要 事务是数据库操作的最小执行单元,具有ACID特性(原子性、一致性、隔离性、持久性)。MySQL通过undo log实现回滚保证原子性,redo log确保持久性。
2025-10-28 10:11:50
887
原创 SQL 性能优化:出现 sql 比较慢怎么办?
MySQL优化器在执行SQL查询时会进行成本分析,选择最优执行路径。数据类型选择对性能影响很大,应遵循越小越简单越好原则。 EXPLAIN工具用于分析SQL执行计划,
2025-10-27 10:47:54
991
原创 InnoDB 体系结构与索引优化
InnoDB是MySQL高性能存储引擎,核心设计围绕内存缓冲池(Buffer Pool)展开,采用冷热数据分区的LRU机制优化缓存命中率。通过Redo Log保证数据持久性,Change Buffer提升二级索引修改性能。索引优化遵循最左匹配原则,推荐使用组合索引并控制数量。覆盖索引可减少回表查询,索引下推(ICP)将过滤条件下沉到存储引擎层,显著提升查询效率。
2025-10-27 10:40:51
1077
原创 MySQL 索引原理
本文系统解析了数据库索引与约束的核心机制。索引方面,详细介绍了主键、唯一、普通等5类索引的特性及适用场景,重点分析了B+树的三层结构如何支撑千万级数据高效查询;
2025-10-25 10:15:16
1009
原创 SQL 进阶:触发器、存储过程
本文介绍了MySQL中的触发器和存储过程两大数据库对象。触发器是与表绑定的自动执行逻辑,通过指定监视对象、事件、时间和动作实现数据完整性控制。存储过程是预编译SQL语句集,支持参数化调用和流程控制,可用于封装复杂业务逻辑,减少网络传输开销。
2025-10-25 10:10:41
1002
原创 SQL 进阶:视图、流程控制、权限管理
摘要:本文介绍了SQL中视图、流程控制和权限管理三大核心功能。视图作为虚拟表,能简化查询、控制权限并保持数据独立性,适用于权限管理和基表重构。
2025-10-24 12:06:39
877
原创 SQL 高级查询与预处理语句深度解析
本文介绍了SQL高级查询的核心操作,包括表结构创建、基础查询、条件查询、范围查询、判空查询、模糊查询、分页查询和排序查询等
2025-10-24 11:59:10
1205
原创 MySQL 增删改查操作与 SQL 执行顺序
本文介绍了数据库CRUD核心操作,包括数据约束、删除数据方式、去重查询和条件过滤等基础知识。重点讲解了五大约束(非空、自增、唯一、主键、外键)的作用,以及DROP、TRUNCATE、DELETE三种删除方式的区别。
2025-10-23 14:10:08
1117
原创 MySQL 体系结构、SQL 执行与设计范式
MySQL采用分层架构:连接器管理连接,服务层处理SQL解析与优化,存储引擎负责数据存储,底层是物理文件。执行SELECT语句需经历连接、解析、优化、执行等阶段。数据库设计需遵循范式以减少冗余,确保结构合理。
2025-10-23 14:05:31
870
原创 Redis 驱动适配 Reactor 模式
本文介绍了将Redis连接管理与Reactor事件驱动模式融合的技术方案。通过构建两类核心事件对象(hiredis事件对象和Reactor事件对象),并适配Reactor事件循环,实现Redis事件的高效调度。
2025-10-22 09:27:22
1099
原创 Redis Cluster 集群搭建与运维操作指南
本文介绍了Redis Cluster集群的搭建过程,主要内容包括: 编译安装hiredis-cluster客户端库,需先安装libevent开发包 准备6个节点环境(3主3从),配置各节点端口、数据目录等参数 通过脚本批量启动所有节点
2025-10-22 09:21:17
1004
原创 去中心化的分布式架构:Redis Cluster 集群
Redis Cluster是Redis的分布式集群方案,采用去中心化设计,将数据划分为16384个槽位分配给各节点。客户端通过槽位映射表直接访问目标节点,支持智能路由和故障转移。集群通过主从复制保障可用性,节点间采用心跳检测机制,当主节点故障时从节点会自动升级。
2025-10-21 12:11:47
746
原创 Redis 高可用:主从复制、哨兵模式
Redis主从复制通过异步复制机制实现数据备份与读写分离,主库处理写操作后立即返回,从库后续同步数据。哨兵模式则提供高可用方案,通过多哨兵节点监控主库状态,在主库故障时自动选举新主库并完成切换。
2025-10-21 12:06:46
834
原创 Redis 内存淘汰策略
Redis作为内存数据库,通过淘汰策略管理内存空间。当内存不足时,Redis支持两种方式释放空间:设置键过期时间自动删除和主动淘汰策略。淘汰策略分为三类:1)volatile-*系列仅淘汰设置了过期时间的键;2)allkeys-*系列对所有键进行淘汰;3)noeviction禁止淘汰直接报错。
2025-10-20 12:56:39
950
原创 Redis 单线程为什么这么快?
Redis单线程模型的高效性源于内存存储、高效数据结构、Reactor网络模型和异步化处理。内存操作速度极快,哈希表查询O(1)且支持渐进式rehash,多种数据结构自动选择最优实现。IO多路复用避免线程切换开销,耗时任务由后台线程处理。
2025-10-18 10:15:29
1092
原创 Redis 线程模型:单线程还是多线程?
Redis采用单线程处理核心命令,但整体运行机制是多线程协作的。主线程负责命令解析和执行,而异步任务(如AOF刷盘、内存释放)由后台线程处理。
2025-10-18 09:55:40
1459
原创 Linux 系统下 MySQL 的安装配置
本文介绍了在Ubuntu/Debian和CentOS/RHEL系统中安装MySQL服务器的详细步骤,并提供了完整的命令行操作指南,帮助用户在不同Linux发行版上顺利完成MySQL的安装与配置。
2025-10-16 11:11:12
1230
原创 Redis 哈希表核心机制:扩缩容与渐进式 Rehash
Redis哈希表采用“数组+链表”结构,通过哈希函数和拉链法解决冲突。动态扩缩容机制根据负载因子调整表大小,采用渐进式rehash避免阻塞主线程,迁移过程分步执行。源码分析展示了dictEntry、dictht等核心结构体,以及扩容触发条件判断逻辑。
2025-10-16 10:58:23
1097
原创 Redis 事务机制:Pipeline、ACID、Lua脚本
本文介绍了Redis的三种批处理与原子操作机制:Pipeline、事务和Lua脚本。Pipeline通过批量发送命令提升网络效率,但不具备事务性;Redis事务通过MULTI/EXEC命令实现乐观锁机制,但不支持回滚;Lua脚本则能完全保证原子性,通过EVAL/EVALSHA执行。
2025-10-15 14:04:56
1384
原创 基于 clangd 搭建 Redis 6.2 源码阅读与调试环境
本文介绍了Redis 6.2源码阅读环境的配置方法。主要内容包括:获取Redis源码并编译;安装bear和clangd工具用于代码跳转;配置VSCode的调试环境(tasks.json和launch.json);启动调试时观察Redis的多线程结构。
2025-10-15 14:04:28
1220
原创 C++ 子类与父类转型:static_cast、dynamic_cast
C++强制类型转换总结:介绍了static_cast和dynamic_cast两种类型转换方式。static_cast在编译时进行类型检查,支持基本类型转换、指针转换和类层次转换。dynamic_cast在运行时检查类型安全,要求类包含虚函数,主要用于类层次间的安全向下转换,失败返回nullptr。
2025-10-13 13:04:49
1171
原创 C++ 赋值兼容原则
摘要: 赋值兼容原则是C++中处理公有继承关系的重要规则,允许派生类对象替代基类对象使用,具体表现为:派生类对象可赋值给基类对象(可能发生对象切片)、派生类指针/引用可初始化基类指针/引用。该原则仅支持公有继承,反向操作不合法。
2025-10-13 13:00:09
625
原创 C++ 面向数据编程(DOP)与面向对象编程(OOP)
摘要:面向数据编程(DOP)与面向对象编程(OOP)是两种不同的编程范式。DOP以数据为中心,优化内存布局和缓存利用率,适合数据密集型场景;OOP以对象为中心,强调封装和多态,便于建模复杂业务逻辑。
2025-10-12 13:14:28
1148
原创 C++ 虚函数与多态
摘要: 多态是C++中通过虚函数实现的运行时动态绑定机制,允许基类指针或引用根据实际对象类型调用不同函数。实现多态需满足三个条件:继承关系、基类虚函数声明、通过基类指针/引用调用。
2025-10-12 13:11:07
958
原创 C++ 联合体
联合体是一种特殊的数据类型,其特点是所有成员共享同一块内存空间,大小等于最大成员的大小。与结构体不同,联合体同一时间只能有效存储一个成员的值,修改一个成员会覆盖其他成员。
2025-10-11 12:23:16
744
原创 C++ 类、结构体、内存对齐
结构体与类的核心区别在于:结构体是值类型,内存栈分配,不支持继承;而类是引用类型,堆分配,支持继承。C++中结构体成员默认public,类默认private。结构体大小计算需要考虑内存对齐,确保成员偏移量是自身大小的整数倍
2025-10-11 12:20:29
1181
原创 C++ 完美转发
文章摘要:完美转发是C++模板编程中的关键技术,用于在函数模板中保持参数的原始值类别(左值/右值)。通过万能引用和std::forward配合,可以避免参数传递时的性能损耗和类型误判。
2025-10-10 13:17:39
977
原创 C++ 移动构造函数与 move 语义
摘要:本文介绍了C++11中的移动构造函数及其应用。移动构造函数通过接管临时对象的资源而非拷贝。其语法采用右值引用并需声明noexcept,关键步骤是接管资源后将源对象置空。
2025-10-10 13:16:16
1051
原创 C++ 右值引用
本文介绍了C++中右值引用、拷贝构造函数及深浅拷贝的核心概念。右值引用用于绑定临时对象,支持移动语义和完美转发,可显著提升性能。拷贝构造函数分为默认(浅拷贝)和自定义(深拷贝)两种,默认拷贝构造函数可能导致资源管理问题。深拷贝会复制指针指向的数据,而浅拷贝仅复制指针地址
2025-10-09 12:57:14
954
原创 C++ 引用
本文详细解析了C++中引用与指针的区别及应用场景。引用本质上是语法糖化的指针,但具有初始化后不可更改、无需解引用等特性。关键区别在于:引用必须初始化且不能为空,而指针更灵活但风险更高。
2025-10-09 12:55:13
1031
原创 C++ 构造函数
本文系统介绍了C++中各类构造函数的特点与用法。主要内容包括:默认构造函数(无参)、带参构造函数(支持重载和初始化列表)、拷贝构造函数(处理对象复制)、移动构造函数(C++11引入,优化资源转移)、委托构造函数(减少代码重复)以及显式构造函数(防止隐式转换)
2025-10-08 12:23:23
1098
原创 C++ 顶层 const 和底层 const
本文详细解析了C++中const限定符的两种用法:顶层const和底层const。顶层const表示对象本身不可修改,底层const表示指针/引用指向的对象不可修改。
2025-10-08 12:20:23
836
原创 C++ 模板、泛型与 auto 关键字
摘要:本文对比了C++模板与Java/C#泛型的核心区别,分析了C++中auto关键字的特性,指出其仅用于变量类型推导,不能替代模板的泛型功能,并解释了auto不能作为函数参数的原因。
2025-10-07 14:57:47
1228
原创 C++ 模板(泛型)
摘要: C++模板是实现泛型编程的核心机制,包括函数模板和类模板。函数模板通过类型参数化替代重载函数,编译器根据调用实参自动生成具体函数实例。类模板则用于构建通用容器和工具类。
2025-10-07 14:55:05
1196
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅