- 博客(8)
- 收藏
- 关注
原创 【Redis】Redis数据结构之深入解析简单动态字符串(SDS)
SDS通过元数据记录、智能扩容、内存优化等创新设计,在保持与C字符串兼容的同时,解决了传统字符串的诸多痛点。这种"空间换时间"+"智能预分配"的设计哲学,为高性能字符串处理提供了经典范例,其设计思路值得广大开发者学习借鉴。
2025-03-05 17:08:06
773
原创 【Golang】Go Channel的底层原理解析
阻塞队列 waitqsudog,这是对goroutine的再封装这里再详细解释一下 字段的作用,见下面这段代码正常来说,如果中一直没有元素,那么程序会一直阻塞在这句代码。即使中有元素到来,也没办法走。但是,实际情况却不是如此。那正是字段的功劳,标识是为了告知当前goroutine,让当前goroutine直接返回,而不是阻塞等待。构造函数判断申请内存空间大小是否越界,mem 大小为 element 类型大小与 element 个数相乘后得到,仅当无缓冲型 channel
2025-03-05 17:07:20
785
原创 【用户登录认证】Session-Cookie 和 Token
通过服务端存储会话状态(Session),客户端通过 Cookie 自动携带会话标识(Session ID)实现身份认证。:服务端生成自包含的 Token(如 JWT),客户端手动携带 Token 完成认证,服务端无需存储会话状态。通过合理选择认证模式,结合安全措施,可以有效平衡开发复杂度、性能与安全性需求。
2025-02-17 22:00:31
825
原创 【Golang】Go Map的底层原理解析之遍历流程和扩容流程
在操作中迁移,如果非常不幸,有那么一两个桶一直没有没访问到,那么就使得内存中一直存在新旧两个map。很简单,我再加一个“顺序迁移”。Go语言中的map是基于哈希表实现的,当元素数量增加或删除频繁时,为了维持高效访问,会触发扩容机制。增量扩容:新桶数为旧桶数的两倍(2^B → 2^(B+1))。等量扩容:新桶数与旧桶数相同(2^B保持不变)。
2025-02-17 21:58:50
387
原创 【计算机网络】TCP 三次握手底层解析
客户端调用connect()后,状态切换为,并发送 SYN 包。服务端处于TCP_LISTEN状态,收到 SYN 包后,根据半连接队列状态、SYN Cookies 策略等,分配并发送 SYN+ACK 包。客户端接收到 SYN+ACK 后,清理发送队列、重置定时器、切换状态为并发送 ACK 确认。服务端收到 ACK 后,调用回调函数创建子 socket,将其加入全连接队列;应用层调用accept()后,取出这个已建立连接。
2025-02-15 22:27:30
806
原创 【Golang】Go Map的底层原理解析之构造方法、读流程、插入流程以及删除流程
map是否被初始化 或 map是否为空map是正在被其他的 goroutine 读map此时是否处于扩容状态本文详细解析了 Go map 的内部数据结构以及其在构造、读、写(插入)和删除时的内部实现逻辑。希望通过本文能帮助你更深入地理解 Go map 的实现细节,为优化代码或深入学习语言底层原理提供参考。如果你有任何问题或建议,欢迎留言讨论!
2025-02-15 22:26:19
1159
原创 使用 DeepSeek 检测博客评论中的敏感内容
今天在开发博客系统的时候,刚好写到了发布评论这一功能。在对评论进行限制的时候,我们一般会想到限制评论的字数,同时也会对评论进行一个检测,是否是敏感言论或者是暴力言论等等。限制评论字数很好实现我们就从响应请求中拿到这个评论,然后计算一下评论长度就可以了。但是如何判断这个评论是否是一个敏感的言论或者暴力言论的写规则吗?突然灵光乍现,想着可不可以通过对sql的方式让deep seek帮我们去检测该评论是否属于违规评论。下面就是我写的一个demo。
2025-02-13 21:03:56
355
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人