随笔分类 - bagu
摘要:原文博客:https://nosae.top/posts/redis八股 字符串 实现 使用SDS(简单动态字符串),SDS不仅可以保存字符串还可以保存二进制数据,获取长度的时间复杂度是O(1),SDS的API是安全的,比如拼接字符串不会造成缓冲区溢出,总的来说就是对数组封装,提供一系列方便操作的A
阅读全文
摘要:原文博客:https://nosae.top/posts/笔记 clickhouse ClickHouse 的高性能主要来自以下几个方面的设计特点: 1. 列式存储:ClickHouse采用列式存储(Columnar Storage),在查询时可以只读所需的列,而不是整个行。这极大减少了磁盘I/
阅读全文
摘要:原文博客:https://nosae.top/posts/场景 短链接系统实现 如何保证生成短链接不重复 如何存储短链接 用302(临时)还是301(永久)重定向 https://cloud.tencent.com/developer/article/1858351 https://blog.csd
阅读全文
摘要:原文博客:https://nosae.top/posts/go-gc 基础知识 go的垃圾回收是没有分代,不整理,并发的三色标记清扫算法 go1.3标记清除 从gc root出发,标记所有可达对象。最后扫描整个head,将没有标记的对象(不可达对象)清除。但缺点是STW、需要扫描整个heap、清除后
阅读全文
摘要:原文博客:https://nosae.top/posts/mq八股 消息队列引入的好处 通过异步处理提高系统性能(减少响应所需时间) 削峰/限流 降低系统耦合性。 消息队列引入的问题 系统可用性降低:需要处理mq宕机问题 系统复杂度提高:需要处理消息重复、丢失、保序等问题 一致性问题:消息没有被正确
阅读全文
摘要:原文博客:https://nosae.top/posts/go-gmp调度器 本文基于go1.21.2,不同版本的go可能会有差异。文中部分代码会由于不是知识点强相关而省略,但被忽略的每行代码或多或少都有它们实际的用处,甚至可能不宜删除,欢迎指出 分析底层的相关的代码时,往往会由于平台架构而带来代码
阅读全文
摘要:原文博客:https://nosae.top/posts/mysql八股 select流程 连接 获取TCP连接,查询用户的权限,该权限保存在连接中,就算管理员改了用户权限,该连接的权限不会变。 空闲连接的最大空闲时长由wait_time控制,超过最大时长就自动断开。 最大连接数由max_conne
阅读全文
摘要:原文博客:https://nosae.top/posts/网络八股 tcp报文 tcp三次握手 客户端发送:SYN、随机序列号x 服务端发送:SYN、ACK、随机序列号y、确认应答号x+1 客户端发送:ACK,可以携带数据 tcp为什么不是两次握手 防止旧的SYN建立连接:如果只有两次握手,那么服务
阅读全文
摘要:原文博客:https://nosae.top/posts/系统八股 软中断 中断请求的处理程序应该要短且快,因为中断处理程序要求关中断(不接受新的中断请求),如果中断处理程序执行时间过长,可能在还未执行完中断处理程序前,会丢失当前其他设备的中断请求。 为了解决由于中断处理时间过长,导致新来的中断丢失
阅读全文
摘要:原文博客:https://nosae.top/posts/go语言八股 本文基于go1.21.2,不同版本的go可能会有差异。文中部分代码会由于不是知识点强相关而省略,但被忽略的每行代码或多或少都有它们实际的用处,甚至可能不宜删除,欢迎指出 分析底层的相关的代码时,往往会由于平台架构而带来代码上的差
阅读全文

浙公网安备 33010602011771号