自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 Rust初步学习

Rust学习路线摘要(150字) 本文为Go开发者提供Rust系统学习指南。Rust以零成本抽象、内存安全和无畏并发著称,与Go相比采用所有权系统而非GC,性能接近C且无运行时开销。学习路径分为四个阶段:1-2周基础(环境搭建、所有权/借用核心概念);2-3周进阶(结构体、枚举、错误处理);2-3周特性与泛型(Trait、生命周期);最后2周并发编程(线程、async/await)。重点掌握Rust独特的所有权系统和借用检查机制,这是其内存安全的核心保障。推荐使用VS Code+rust-analyzer或

2026-03-14 08:47:38 529

原创 mysql索引

本文介绍了MySQL InnoDB引擎的索引基础知识。主要内容包括:索引的作用是提升查询性能,减少I/O和扫描行数;但也带来存储空间占用和维护成本。InnoDB采用B+Tree结构,包含聚簇索引(存储整行数据)和二级索引(存储索引列+主键值)。文章对比了不同数据结构特点,并提供了主键索引、唯一索引、普通索引和复合索引的创建示例SQL。最后强调索引设计需要权衡性能提升与维护成本。

2026-02-06 21:01:28 435

原创 Golang Map深入理解

Golang 中的 map 一直使用 hash 表作为底层实现。一个哈希表里面可以有多个哈希表节点,也即 bucket,而每个 bucket 就保存了 map 中的一个或一组键值对。重要版本变更:在 Go 1.24 版本中,map 数据结构经历了彻底的重构!

2026-01-08 20:54:39 897

原创 Golang Slice深度解析

本文深入解析了Go语言中Slice的实现原理。Slice是基于数组实现的动态数组结构,包含指向底层数组的指针、长度和容量三个字段。文章详细介绍了Slice的两种创建方式(make创建和数组创建)及其内存结构,重点分析了Slice的扩容机制,包括扩容容量计算规则(小容量翻倍、大容量渐进增长)和内存分配过程。最后总结了Slice的核心特性:指向底层数组、保存长度和容量信息、O(1)复杂度计算长度/容量、函数传递不拷贝数据、append可能触发扩容等。

2026-01-07 11:53:10 347

原创 Golang Channel 原理深度解析

Golang Channel 原理深度解析:Channel 是 Golang 提供的 goroutine 间通信机制,采用"通过通信共享内存"的设计理念。其核心数据结构 hchan 包含环形队列、等待队列和类型信息。创建时根据元素类型和缓冲区大小采用不同内存分配策略。写入数据时遵循特定优先级:优先直接传递数据给等待接收者,其次写入缓冲区,最后视情况阻塞或返回失败。整个过程通过互斥锁保护并发安全,体现了 Golang 高效并发编程的设计思想。

2026-01-07 09:17:47 636

原创 进程调度算法 笔记总结

本文介绍了五种常见的CPU进程调度算法。先来先服务(FCFS)算法简单但不利于短作业;短作业优先(SJF)算法提升吞吐量但可能导致长作业饿死;高响应比算法平衡了长短作业;时间片轮转算法简单实用但时间片设置影响性能;高优先级算法分为抢占式和非抢占式;多级反馈队列算法结合了优先级和时间片轮转的优点,能兼顾长短作业。文章还指出吞吐量是衡量系统性能的重要指标,通常用TPS表示。这些算法各有特点,适用于不同场景下的进程调度需求。

2025-12-20 10:52:25 204

原创 分库分表技术详解:从入门到实践

分库分表是解决数据库性能瓶颈的核心方案,通过将数据分散存储实现水平扩展。主要分为垂直拆分(按业务模块分离)和水平拆分(按数据行分散)。垂直拆分能解耦业务但跨库JOIN困难,水平拆分包含范围、哈希、一致性哈希等策略,各有适用场景。分库分表带来性能提升和扩展能力,但也面临分布式主键、跨库查询等挑战。雪花算法和号段模式是解决分布式ID的主流方案。合理选择分片策略能有效应对海量数据和高并发场景。

2025-11-21 22:12:04 1086

原创 Golang HTTP 框架 Hertz 实战

本文介绍如何使用 Golang HTTP 框架 Hertz 快速构建高性能微服务。Hertz 是字节跳动开源的一款 Go 语言 Web 框架,兼具高性能与易用性。文章从零开始演示了 Hertz 的基本使用方法,包括创建 HTTP 服务、路由注册、请求参数处理等核心功能。重点展示了 Hertz 的特色功能:通过代码生成工具 hz 自动构建项目骨架,以及强大的参数绑定与校验机制。通过简洁的示例代码,读者可以快速上手 Hertz 框架,将其应用到实际微服务开发中。Hertz 简洁的 API 设计和高性能特性,使其

2025-11-01 08:58:10 1054 5

原创 Mysql高级聚合技巧

本文深入解析了MySQL中的高级聚合技巧,帮助应对复杂的数据汇总需求。介绍了WITH ROLLUP实现层级小计,WITH CUBE生成多维汇总,以及灵活自定义分组的GROUPING SETS。通过条件聚合实现数据透视(PIVOT)功能,将行转列展示。重点讲解了窗口函数的强大功能,包括累计计算、分组排名和同比环比分析。这些技术为数据分析提供了更丰富的工具,从简单汇总到复杂计算都能高效完成,适用于不同版本的MySQL数据库。

2025-10-18 09:25:14 452

原创 SQLEXPLAIN 详解

SQL性能优化利器:EXPLAIN命令详解 EXPLAIN是分析SQL查询执行计划的关键命令,能帮助开发者定位性能瓶颈。主要关注三个核心指标:type列(避免ALL,追求range/ref)、key列(确保使用正确索引)和Extra列(警惕Using temporary/Using filesort)。通过将EXPLAIN置于SELECT等语句前,可获取查询执行顺序、索引使用情况、扫描行数等关键信息。实战中,应避免在索引列使用函数,合理创建复合索引,并重写低效查询。掌握EXPLAIN是提升SQL性能的关键技

2025-10-12 11:59:38 1154

原创 Redis中Lua脚本的应用场景分析

本文基于一个ADX(广告交换平台)管理系统API项目,深入分析其数据同步中Lua脚本的应用场景,并扩展探讨Redis中Lua脚本的各种实际应用。该项目是一个高并发的广告投放管理系统,需要处理大量的广告位配置、DSP对接、数据同步等任务。Redis中的Lua脚本为分布式系统提供了强大的原子操作能力。简化复杂逻辑:将多步Redis操作合并为单个原子操作提高系统性能:减少网络通信开销和锁竞争增强数据一致性:通过原子性操作避免并发问题提升系统可靠性:完善的错误处理和自动恢复机制。

2025-09-20 11:57:36 691

原创 牛客月赛120-E题

摘要 本文介绍了牛客月赛120-E题的解法。题目要求在给定正整数序列中,为每个元素找到一个满足特定条件的下标。解法采用排序后双循环遍历的方法,时间复杂度约为O(nlogV)。文章还深入探讨了除数函数的相关数学知识,包括大数因子数估算方法和Dirichlet除数问题,通过双曲配对法推导出除数函数前n项和的渐近公式D(n)≈nlog(n)。最后提供了C++实现代码,包含排序、遍历和结果输出等关键步骤。

2025-09-09 12:35:01 743

原创 MySQL高级功能:窗口函数

MySQL窗口函数是8.0版本引入的高级分析功能,它允许对数据集的特定"窗口"(由PARTITION BY定义的分区)进行计算而不合并行。核心语法包括窗口函数(如ROW_NUMBER、SUM等)和OVER子句,后者可指定分区、排序和窗口帧范围。常用函数分为四类:序号函数(ROW_NUMBER、RANK等)、分布函数(NTILE)、前后值函数(LAG/LEAD)以及聚合函数(SUM、AVG等)。使用时需注意版本兼容性和LAST_VALUE函数的默认窗口范围问题。窗口函数能实现复杂分析如累计

2025-09-07 13:35:45 891

原创 科普文章:广告技术平台的盈利模式全景

这篇文章系统解析了数字广告行业的盈利模式与技术指标。首先介绍了广告生态中各角色(广告主、DSP、ADX、SSP、媒体)的价值链关系与资金流向。然后详细拆解了8种核心盈利方式,包括佣金抽成、差价套利、效果计费、SaaS订阅等。最后提供了12个关键指标的解释与优化方法,如CTR、CPM、CPA等,涵盖从曝光到转化的全链路分析。全文为技术从业者提供了理解广告变现逻辑的实用框架。

2025-08-30 16:05:49 1411

原创 一文读懂 JWT:从原理到实践

JWT:无状态身份验证方案解析 JWT(JSON Web Token)是一种基于JSON的无状态令牌,用于安全传递用户身份信息。它由Header、Payload和Signature三部分组成,支持跨语言和跨平台使用,适用于微服务、单点登录等场景。相比传统Session,JWT无需服务端存储会话状态,但存在无法强制注销、令牌体积较大等缺点。 安全实践包括使用HTTPS传输、短期令牌有效期、敏感数据最小化存储等。代码示例展示了如何用Go生成和验证JWT,通过签名确保令牌的完整性和真实性。JWT在前后端分离、无C

2025-08-16 16:21:41 813

原创 GitHub第三方登录全解析:OAuth 2.0流程详解(适合初学者)

本文详细解析了GitHub第三方登录的OAuth 2.0流程,适合初学者理解。文章首先介绍了OAuth的作用,让用户无需创建新账号即可安全登录。核心流程包括:用户授权、令牌交换、获取用户信息和完成登录四个关键步骤。文中提供了配置参数详解和常见问题解答,强调client_secret的安全性。最后总结了OAuth 2.0的安全认证流程,并给出了安全实践建议,如使用HTTPS、最小权限原则等。通过清晰的流程图和示例代码,帮助开发者快速掌握GitHub第三方登录的实现方法。

2025-08-09 11:41:59 1575

原创 操作系统到 Go 运行时的内存管理演进与实现

本文深入分析了操作系统内存管理与Go运行时内存管理的实现原理与协同机制。操作系统通过虚拟内存抽象和分层页表实现进程隔离与地址转换,采用写时复制等优化技术提升性能。Go运行时构建了三级缓存架构(mcache、mcentral、mheap),通过精密的尺寸分级和位图管理实现高效内存分配。垃圾回收与内存分配深度协同,采用并发标记和分代清扫策略平衡性能。文章还提供了内存池、逃逸分析等优化技巧,并展示了系统层与运行时层的整体架构设计,揭示了现代内存管理系统的精妙实现与性能优化哲学。

2025-08-02 14:22:09 963

原创 TCP三次握手与四次挥手全解析

本文讲解了面试题目中TCP三次握手与四次挥手

2025-07-26 13:10:44 1176

原创 相似度度量方法

推荐系统中的相似度度量方法研究

2025-07-19 14:02:54 857

原创 推荐系统-Random算法

随机推荐算法(Random)是推荐系统中的基础基线方法,通过随机生成评分来模拟用户偏好

2025-07-12 17:22:10 778

原创 推荐系统-数据分割、性能验证

本文系统介绍了推荐系统的基础概念,重点探讨了数据集划分和模型验证方法。

2025-07-12 11:31:28 621

原创 Zap Logger使用与配置

讲述zap logger使用与配置

2025-07-05 11:16:40 1067

原创 WebSocket 协议详解

WebSocket 协议的帧数据详解以及使用场景

2025-06-22 15:07:45 961

原创 go中的接口返回设计思想

go中的接口返回设计思想

2025-06-07 13:43:29 723

原创 Go中MAP底层原理分析

Go语言中map的底层实现采用哈希表结构,核心由hmap结构体和bmap桶组成。hmap包含桶数量、元素计数、哈希种子等字段,其中buckets指向哈希桶数组。每个bmap桶存储8个键值对,包含tophash数组(记录键哈希值高8位)和隐式的键值数组。查找时先用哈希低B位定位桶,再用高8位在桶内定位具体位置。map还支持溢出桶机制处理哈希冲突,并有特殊状态标记用于扩容迁移。该设计平衡了查找效率和内存利用率,是Go高性能map实现的关键。

2025-06-01 10:43:45 869

转载 OpenTelemetry 链路追踪介绍

OpenTelemetry合并了OpenTracing和OpenCensus项目,提供了一组API和库来标准化遥测数据的采集和传输。OpenTelemetry提供了一个安全,厂商中立的工具,这样就可以按照需要将数据发往不同的后端。推动在所有项目中使用一致的规范基于规范的,包含接口和实现的APIs不同语言的SDK(APIs的实现),如 Java, Python, Go, Erlang等Exporters:可以将数据发往一个选择的后端。

2025-05-28 17:53:36 142

原创 Go语言时间处理

go语言时间处理详解

2025-05-04 13:33:10 640

原创 Gin框架-中间件介绍

深入理解Gin框架中的中间件

2025-04-26 13:24:48 567

原创 MIME类型速查宝典:确保浏览器正确解析文件的秘诀

浏览器对不同文件格式的解析

2025-04-20 12:49:23 714

原创 goweb适配器模式

goweb路由接口转换与适配器模式

2025-04-13 13:32:59 1085

原创 goweb核心学习

日期:{{ formatDate .CreateTime }}</p>-- 管道操作 --><p>结果:{{ 3 | add 5 }}

2025-04-05 16:11:59 735

原创 算法分享 稀疏表(Sparse Table)

经典算法分享

2025-03-30 14:07:33 558 1

原创 git常用命令总结

git常见命令介绍

2025-03-30 13:56:10 977

原创 redis事务与lua脚本

redis事务与lua脚本

2025-03-23 08:18:39 712

原创 redis命令参考

redis命令常见命令总结[key]

2025-03-16 11:30:27 938

原创 Innodb数据页格式

mysql进阶Innodb数据页格式总结

2025-03-09 09:38:54 1087

原创 mysql基础

7种JOIN ON连接方式介绍

2025-03-02 12:45:41 541

原创 docker基础命令

Docker常见命令总结

2025-02-23 16:02:43 1126

原创 go语言学习

go语言进阶学习

2025-01-25 20:55:45 817

原创 go语言进阶学习

select。

2025-01-25 20:51:41 977

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除