自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【数据库优化】数据冷热分离

数据验证:对比这批数据在插入冷库前后的。,确保数据在迁移过程中没有出错或丢失。

2025-08-31 16:07:02 522

原创 redis实现分布式锁

好的,我们来一步步深入 Redis 分布式锁的实现,从最简单的开始,逐步分析问题并给出解决方案。理解这个过程对于掌握分布式锁的精髓至关重要。

2025-08-31 16:06:48 951

原创 pprof之实战篇

pprof是golang中最常用的性能分析工具。

2025-08-26 10:18:17 709

原创 【数据库优化】读写分离和分库分表

分库就是将数据库中的数据分散到不同的数据库上,可以垂直分库,也可以水平分库。垂直分库就是把单一数据库按照业务进行划分,不同的业务使用不同的数据库,进而将一个数据库的压力分担到多个数据库。水平分库是把同一个表按一定规则拆分到不同的数据库中,每个库可以位于不同的服务器上,这样就实现了水平扩展,解决了单表的存储和性能瓶颈的问题。分表就是对单表的数据进行拆分,可以是垂直拆分,也可以是水平拆分水平分表是对数据表行的拆分,把一张行比较多的表拆分为多张表,可以解决单一表数据量过大的问题。垂直分表。

2025-08-26 10:17:52 757

原创 限流算法:滑动窗口、漏桶以及令牌桶

本文介绍了三种常见的限流算法及其Golang实现。限流用于防止系统因高流量而崩溃,保障系统稳定性。滑动窗口算法将时间划分为多个小窗口,统计窗口内请求数进行限流;漏桶算法以固定速率处理请求,超出容量则拒绝;令牌桶算法允许突发流量,通过令牌生成速率控制长期流量。文章提供了漏桶和令牌桶的Golang实现代码,包括单线程和多线程测试示例,展示了两种算法在不同场景下的限流效果。三种算法各有特点,可根据实际需求选择合适的限流策略。

2025-08-07 17:53:51 1173

原创 线程池解析

线程池是一种高效管理线程的并发模型,通过预先创建线程并复用,减少频繁创建销毁的开销。其核心包含任务队列、工作线程、线程管理器和拒绝策略。工作流程分为任务提交、状态判断、任务执行、线程回收和关闭五个阶段,根据线程数和队列状态动态调整。关键参数包括核心线程数、最大线程数、队列容量和空闲超时时间,需根据任务类型(CPU/IO密集型)合理配置。当队列和线程数满时,拒绝策略决定后续处理方式。线程池通过复用线程和动态调整机制,有效平衡系统资源与并发性能。

2025-08-07 17:51:48 1085

原创 【Redis】Redis数据结构之深入解析简单动态字符串(SDS)

SDS通过元数据记录、智能扩容、内存优化等创新设计,在保持与C字符串兼容的同时,解决了传统字符串的诸多痛点。这种"空间换时间"+"智能预分配"的设计哲学,为高性能字符串处理提供了经典范例,其设计思路值得广大开发者学习借鉴。

2025-03-05 17:08:06 918

原创 【Golang】Go Channel的底层原理解析

阻塞队列 waitqsudog,这是对goroutine的再封装这里再详细解释一下 字段的作用,见下面这段代码正常来说,如果中一直没有元素,那么程序会一直阻塞在这句代码。即使中有元素到来,也没办法走。但是,实际情况却不是如此。那正是字段的功劳,标识是为了告知当前goroutine,让当前goroutine直接返回,而不是阻塞等待。构造函数判断申请内存空间大小是否越界,mem 大小为 element 类型大小与 element 个数相乘后得到,仅当无缓冲型 channel

2025-03-05 17:07:20 1094

原创 【用户登录认证】Session-Cookie 和 Token

通过服务端存储会话状态(Session),客户端通过 Cookie 自动携带会话标识(Session ID)实现身份认证。:服务端生成自包含的 Token(如 JWT),客户端手动携带 Token 完成认证,服务端无需存储会话状态。通过合理选择认证模式,结合安全措施,可以有效平衡开发复杂度、性能与安全性需求。

2025-02-17 22:00:31 1771

原创 【Golang】Go Map的底层原理解析之遍历流程和扩容流程

在操作中迁移,如果非常不幸,有那么一两个桶一直没有没访问到,那么就使得内存中一直存在新旧两个map。很简单,我再加一个“顺序迁移”。Go语言中的map是基于哈希表实现的,当元素数量增加或删除频繁时,为了维持高效访问,会触发扩容机制。增量扩容:新桶数为旧桶数的两倍(2^B → 2^(B+1))。等量扩容:新桶数与旧桶数相同(2^B保持不变)。

2025-02-17 21:58:50 590

原创 【计算机网络】TCP 三次握手底层解析

客户端调用connect()后,状态切换为,并发送 SYN 包。服务端处于TCP_LISTEN状态,收到 SYN 包后,根据半连接队列状态、SYN Cookies 策略等,分配并发送 SYN+ACK 包。客户端接收到 SYN+ACK 后,清理发送队列、重置定时器、切换状态为并发送 ACK 确认。服务端收到 ACK 后,调用回调函数创建子 socket,将其加入全连接队列;应用层调用accept()后,取出这个已建立连接。

2025-02-15 22:27:30 1039

原创 【Golang】Go Map的底层原理解析之构造方法、读流程、插入流程以及删除流程

map是否被初始化 或 map是否为空map是正在被其他的 goroutine 读map此时是否处于扩容状态本文详细解析了 Go map 的内部数据结构以及其在构造、读、写(插入)和删除时的内部实现逻辑。希望通过本文能帮助你更深入地理解 Go map 的实现细节,为优化代码或深入学习语言底层原理提供参考。如果你有任何问题或建议,欢迎留言讨论!

2025-02-15 22:26:19 2299

原创 使用 DeepSeek 检测博客评论中的敏感内容

今天在开发博客系统的时候,刚好写到了发布评论这一功能。在对评论进行限制的时候,我们一般会想到限制评论的字数,同时也会对评论进行一个检测,是否是敏感言论或者是暴力言论等等。限制评论字数很好实现我们就从响应请求中拿到这个评论,然后计算一下评论长度就可以了。但是如何判断这个评论是否是一个敏感的言论或者暴力言论的写规则吗?突然灵光乍现,想着可不可以通过对sql的方式让deep seek帮我们去检测该评论是否属于违规评论。下面就是我写的一个demo。

2025-02-13 21:03:56 2293

原创 【Golang】Go Slice(切片)原理及扩容机制解析

slice知多少

2025-02-12 20:26:34 2373

空空如也

空空如也

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

TA关注的人

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