- 博客(752)
- 资源 (15)
- 收藏
- 关注
原创 Python 中的 `lru_cache` 详解
它会自动缓存函数的计算结果,当使用相同的参数再次调用时直接返回缓存结果,避免重复计算。,清理操作只会影响调用它的特定函数实例,不会影响其他函数或模块的缓存。在 Gunicorn/Uvicorn 等多进程部署中,→ 重新输出 “小型缓存计算: 3”(缓存失效)类中的不同实例共享同一个缓存(除非使用实例方法)→ 清理操作只影响当前工作进程的缓存。→ 输出 “小型缓存计算: 3”→ 输出 “大型缓存计算: 3”模块提供的装饰器,用于实现。是 Python 标准库。(证明两个函数缓存独立)在 Python 的。
2025-06-14 14:42:52
556
原创 精准测量 MySQL 主从复制延迟—pt-heartbeat工具工作原理
本质:通过“主库打时间戳 → 从库重放 → 本地计算时间差”实现延迟测量。优势精度高(微秒级)、可靠性强(不受主库空闲影响)、兼容任意MySQL版本。适用场景读写分离架构的延迟监控;主从切换前的数据一致性校验;复制性能瓶颈分析。📌部署建议。
2025-06-14 14:05:26
441
原创 MySQL从库复制延迟的监测
监测方法精准度部署复杂度适用场景主要缺陷⭐⭐⭐快速概览延迟趋势易受时间同步/网络中断干扰Binlog位点对比⭐⭐⭐⭐⭐判断事务堆积量无法量化延迟时间⭐⭐⭐⭐⭐⭐⭐跨版本通用,需高精度监控需维护心跳进程,污染binlogMySQL 8.0+ GTID时间戳⭐⭐⭐⭐⭐⭐⭐事务级延迟分析,复杂复制拓扑仅限MySQL 8.0+且需GTID⭐⭐⭐⭐⭐⭐⭐⭐读写分离一致性保障需业务改造传递GTID。
2025-06-14 13:22:51
575
原创 Python Wheel 打包基本原理详解
Wheel作为Python打包生态的核心组件,其设计体现了Python社区对"简单比复杂更好"哲学理念的实践,是Python软件分发现代化的基石。格式,提供更快速、可靠的安装体验。)是Python的官方二进制包格式,旨在替代传统的。验证RECORD签名。
2025-06-08 15:37:29
757
原创 Python Web项目打包(Wheel)与服务器部署全流程
通过此方案,您可以实现Python Web项目的标准化打包和可靠的生产环境部署,适用于Flask、Django、FastAPI等主流Web框架。
2025-06-08 15:27:28
421
原创 Python项目的构建和部署方案推荐
根据团队规模和项目复杂度选择合适方案,初期建议从容器化(Docker Compose)起步,逐步过渡到Kubernetes集群管理。Python项目的构建和部署有多种成熟方案,根据项目规模和需求可选择不同工具链。
2025-06-08 15:17:45
897
原创 2025年AI编程工具推荐
2025年,AI编程工具已从辅助工具升级为开发流程的核心生产力引擎。这些工具不仅能大幅提升编码效率、降低错误率,还推动了“自然语言驱动开发”的新范式。当前工具已实现“需求→代码”的转化,未来将向多模态交互(如AR可视化代码)、自主调试等方向演进。选型时需结合项目规模、技术栈及隐私要求,善用免费资源(如Trae、Windsurf)可显著降低开发成本。这类工具重新定义了集成开发环境,深度融合AI能力,支持从代码生成到调试部署的全流程。,但需注意:AI更擅长执行而非设计,系统架构与核心逻辑仍需人工把控。
2025-06-07 22:59:34
560
原创 tmux基本原理
成为系统管理员和开发者的核心生产力工具,尤其适合远程服务器管理和复杂工作流场景。,通过解耦终端显示与运行进程实现会话持久化。(Terminal Multiplexer)的核心原理基于。
2025-05-31 22:28:12
518
原创 ssh连接断开,保持任务后台执行——tmux
它能让用户在一个连接中执行多个任务,并在断开连接后保持任务后台运行,非常适合远程服务器管理或长时间运行的任务。掌握 tmux 可极大提升终端工作效率,尤其适合管理服务器或复杂工作流。)是一个强大的终端复用工具,用于在单个终端窗口中管理多个。Ctrl+b 方向键。
2025-05-31 22:25:07
399
原创 binlog 解析工具——my2sql
my2sql是一款基于 Go 语言开发的 MySQL binlog 解析工具,支持从二进制日志(binlog)中生成原始 SQL、回滚 SQL(闪回 SQL)、去除主键的 INSERT SQL 等,还能生成 DML 操作统计信息。数据快速回滚(闪回):通过逆向解析 binlog 生成反向 SQL,恢复误删除或误修改的数据。主从数据一致性修复:主从切换后新主库数据丢失时,通过 binlog 恢复数据。生成标准 SQL 与统计信息:用于审计、数据迁移,或分析高频更新表、大事务及主从延迟问题。
2025-05-25 15:43:18
861
1
原创 binlog解析工具——binlog2sql
binlog2sql是一款开源的 Python 工具,用于解析 MySQL 的 binlog 文件,生成标准 SQL 或回滚 SQL,实现数据恢复和衍生功能。数据快速回滚(闪回):通过解析 binlog 生成反向 SQL,恢复误删除或误修改的数据。主从切换修复:当主从切换后新主库数据丢失时,通过 binlog 恢复数据一致性。生成标准 SQL:用于审计、数据迁移或分析数据库操作历史。
2025-05-25 13:05:32
704
原创 Buffer Pool如何进行预热
在 MySQL 中,Buffer Pool 预热(Warm-Up) 是指将数据库重启后需要高频访问的数据页提前加载到内存中,以减少冷启动时因磁盘 I/O 导致的性能下降
2025-04-27 07:00:00
610
原创 Buffer Pool是什么,有什么作用
在 MySQL 的 InnoDB 存储引擎中,Buffer Pool(缓冲池) 是 内存中的核心组件,负责缓存表数据、索引和其他 InnoDB 相关的数据结构。
2025-04-26 21:58:00
656
原创 关于聚簇索引
聚簇索引(Clustered Index)是 一种将数据行物理存储顺序与索引键值逻辑顺序紧密结合的索引结构。在 MySQL 的 InnoDB 引擎中,聚簇索引直接决定了表中数据的物理排列方式,因此每个表有且只有一个聚簇索引。
2025-04-26 21:53:45
334
原创 MySQL二进制日志格式有哪几种
在 MySQL 中,二进制日志(Binary Log)的格式决定了主库如何记录数据的变更事件,并直接影响复制的行为和一致性。通过合理选择二进制日志格式,可以优化 MySQL 的复制性能和数据一致性。如果对数据一致性要求极高,建议始终使用。:记录数据行的实际变更(修改前/后的行数据),而非 SQL 语句。等),从库通过重放这些 SQL 语句实现数据同步。以下是每种格式的详细说明及其事务的事件组成。二进制日志中会记录完整的 SQL 语句。:记录实际执行的 SQL 语句(如。的行数据变更前后的值(如旧值。
2025-03-18 22:50:11
1101
原创 为什么“连接断开可能导致锁未释放”
大多数情况下:数据库会在连接断开时自动释放锁,但需依赖数据库的实现和配置。极端场景下:因网络问题、数据库检测延迟或代码缺陷,锁可能未及时释放,导致类似死锁的阻塞问题。解决方案:通过事务超时设置、完善的代码逻辑和运维监控降低风险。
2025-03-18 22:45:31
800
原创 deepseek推荐10本程序员必读书籍
以下是提升程序员技能的10本经典书籍推荐,涵盖编程思想、算法、系统设计、代码质量及职业发展等核心领域,结合多个权威来源整理而成。
2025-02-23 22:03:08
630
原创 SQL中 的exists用法
EXISTS 是 SQL 中的一个子查询条件,用于检查子查询是否返回任何行。如果子查询返回至少一行,则 EXISTS 返回 TRUE。
2025-02-08 21:45:42
642
原创 如何限制SQL的执行时间(max_execution_time)
在MySQL中,max_execution_time是一个系统变量,用于限制SQL语句的最大执行时间。当一个查询的执行时间超过这个设置的阈值时,MySQL会尝试终止并停止该查询的执行。这个功能主要用于防止某些查询因为执行时间过长而占用过多的系统资源,从而影响数据库的整体性能和响应时间。
2025-01-18 11:32:52
863
原创 kill SQL (pt-kill工具)
pt-kill是Percona Toolkit工具集中的一个工具,用于监控MySQL查询并根据指定的条件自动终止长时间运行的查询。这个工具非常有用,特别是在需要管理和控制数据库资源使用,防止长时间运行的查询占用过多资源,影响数据库性能的情况下。
2025-01-18 11:32:32
432
原创 在MySQL 主库上进行自动清理 purged gtid 时,会等待 binlog复制到从库吗
在MySQL中,自动清理purged GTID的过程确实会考虑到binlog是否已经复制到从库。
2024-12-25 22:21:52
605
原创 errant是怎么产生的
在MySQL中,errant GTID(错误GTID)是指在从库上存在但在主库上不存在的GTID。这通常是由于在从库上执行了不应存在的事务或在主库上未能正确复制的事务所导致的。
2024-12-25 22:10:47
506
原创 MySQL中Seconds_Behind_Master是怎么计算的
在MySQL中,Seconds_Behind_Master是一个用于表示从库(Slave)落后于主库(Master)的时间(以秒为单位)的指标。
2024-12-24 22:48:06
1247
原创 raft: Failed to contact
一个分布式服务是基于raft分布式协议开发的,在一个新版本上线后,出现了Leader比较频繁的漂移问题。
2024-12-21 23:11:15
1054
原创 MySQL 怎么不丢数据(关于开启双1配置)
在MySQL中,"双1"配置指的是将innodb_flush_log_at_trx_commit设置为1和sync_binlog设置为1。这两个设置都与数据的持久性和一致性有关,特别是在面对系统崩溃或意外重启的情况下。使用"双1"配置可以最大限度地保证MySQL数据库在面对系统崩溃或电源故障等情况时的数据安全和一致性。即使在这些极端情况下,也能确保所有已提交的事务不会丢失。
2024-11-18 23:00:00
901
原创 executed_gtid_set 与 purged_gtid_set
executed_gtid_set 和 purged_gtid_set 是 MySQL 复制中与 GTID(全局事务标识符)相关的两个重要概念。
2024-11-18 22:30:00
349
原创 MVCC(多版本并发控制)
MVCC(多版本并发控制)是一种用于数据库管理系统中实现并发控制的技术。它允许多个事务同时对数据库进行读写操作,而不会相互干扰,从而提高数据库系统的性能和可用性。MVCC通过为每个事务创建数据的“快照”来工作。MVCC是实现某些事务隔离级别的一种机制,特别是在实现读已提交(Read Committed)和可重复读(Repeatable Read)隔离级别时非常有效。
2024-10-05 17:37:11
665
原创 数据库的隔离级别
数据库的隔离级别主要有四种,从低到高依次是:1. 读未提交(Read Uncommitted)2. 读已提交(Read Committed)3. 可重复读(Repeatable Read)4. 串行化(Serializable)
2024-10-05 17:25:57
1107
原创 Go语言的垃圾回收(GC)机制的迭代和优化历史
Go语言的垃圾回收(GC)机制自Go语言发布以来经历了多次重要的迭代和优化,以提高性能和减少程序运行时的停顿时间。
2024-09-21 10:40:25
790
1
原创 Prometheus相关的语言客户端
Prometheus官方提供了多种语言的客户端库,以便开发者可以在不同的编程语言中集成Prometheus监控。
2024-09-16 17:03:33
1272
原创 系统可观测性
可观测性(Observability)是指通过外部输出来理解系统内部状态的能力。在软件工程和系统管理领域,它涉及到收集、分析和理解系统生成的数据(如日志、度量和追踪信息),以帮助开发者和运维人员监控系统健康、诊断问题、优化性能和理解系统行为。
2024-09-16 16:47:40
603
原创 go语言中的GC
GC是 Go 运行时(runtime)的一部分,负责自动管理内存的分配和释放。当程序中的变量或对象不再被需要时,GC 会自动回收这些不再使用的内存空间,使其可以被重新分配给其他变量或对象。Go 的垃圾收集器是并发的,并且是非阻塞的,这意味着它在后台运行,尽量减少对程序执行的干扰。通过自动管理内存,GC 使得 Go 程序员可以更加专注于业务逻辑的实现,而不需要手动管理内存的分配和释放,从而减少了内存泄漏和其他内存相关错误的可能性。GC触发方式包括:自动和手动两种。其中,手动是用户主动调用。
2024-08-18 23:27:17
762
原创 磁盘IO挂起(Disk IO hang)
磁盘IO挂起(Disk IO hang)是指磁盘输入/输出操作延迟异常,甚至完全停止响应的情况。在这种状态下,系统尝试对磁盘进行读写操作,但操作无法在合理的时间内完成,导致进程挂起等待,影响系统性能和响应能力。磁盘IO挂起可能是暂时的,也可能是持续的,严重时可能需要重启系统或更换硬件才能恢复。
2024-07-21 09:49:29
1335
原创 异地多活(Geo-Redundancy 或 Geographic Redundancy)
异地多活(Geo-Redundancy)是指在不同的地理位置(通常是不同的城市或地区)部署多个数据中心,这些数据中心之间通过高速网络连接,实现数据的同步和服务的高可用性。异地多活(Geo-Redundancy)是一种高可用性和灾难恢复策略,通过在不同的地理位置部署多个数据中心,实现数据的同步和服务的高可用性。通过结合单元化和异地多活,可以构建一个既具有高扩展性又具有高可用性的系统架构,能够应对大规模的用户流量和区域性灾难,保证业务的连续性和数据的安全性。
2024-07-14 20:17:27
1087
深入理解linux内核 第三版 Daniel P. Bovet &Marco Cesati 勘误
2011-03-07
sqlite嵌入式编程实例
2012-06-20
ndiswrapper 最新版本下载 ndiswrapper-1.57.tar.gz
2012-03-07
Spreadsheet-ParseXLSX-0.16.tar.gz
2014-11-26
Linux下使用USB转串口获取GPS数据
2012-03-01
Linux下sqlite3编程实例
2012-06-20
git post-update
2017-07-30
rt5370驱动
2012-03-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人