摘要:
前置知识最好先了解数组和链表的特性: https://www.cnblogs.com/CJTARRR/p/19060980 基本功能 通过key计算定位到key,value存储位置 基本实现 取一个数组,每个空位用于存储key和value,空位也叫桶。 key经过哈希计算再与数组长度取模,得到的数值 阅读全文
posted @ 2025-08-27 15:31
CJTARRR
阅读(6)
评论(0)
推荐(0)
摘要:
数组 存储方式: 一段连续的内存 查询方式: 数组头地址 + (索引 * 元素大小) = 目标元素地址 修改方式: 为保持内存连续性,增/删元素需要将后面元素后移/前移,影响元素越多,效率越低。 单向链表 存储方式: 无需连续内存,前元素携带指向后元素的指针即可。 查询方式:从头元素开始,通过指针一 阅读全文
posted @ 2025-08-27 14:47
CJTARRR
阅读(9)
评论(0)
推荐(0)
摘要:
计数器算法 单位时间内计数,超过数量的任务拒绝处理。 令牌桶算法 系统按固定速率向桶中放令牌,任务过来需要获取令牌才能继续,没有获取到令牌的任务会被拒绝处理。 漏桶算法 任务进入桶中,按固定速率对外漏出,并且溢出桶容量的任务会被拒绝处理。 滑动窗口算法 将服务周期划分为不同的窗口,不同的窗口对任务有 阅读全文
posted @ 2025-08-27 14:24
CJTARRR
阅读(6)
评论(0)
推荐(0)
摘要:
轮询/加权轮询 将任务按固定处理者顺序,逐个分配给不同的处理者。 加权则表示,不同处理者在固定顺序中占的比例不同,有相应的权重。 随机/加权随机 任务随机分配给不同的处理者,加权表示不同处理者有不同的选取概率。 最小连接数/加权最小连接数 任务总是分配到持有任务量最小的处理者上。 加权表示,不直接通 阅读全文
posted @ 2025-08-27 14:15
CJTARRR
阅读(6)
评论(0)
推荐(0)
摘要:
建立连接——三次握手 - 客户端发送syn标志包给服务端,表示希望建立连接。 - 服务端收到消息,发送syn和ack标志包给客户端,ack标志包表示确认建立连接请求,syn包表示希望与客户端建立连接。 - 客户端收到消息后,发送ack标志包给服务端,表示确认建立连接请求。 断开连接——四次挥手 - 阅读全文
posted @ 2025-08-27 13:43
CJTARRR
阅读(18)
评论(0)
推荐(0)
摘要:
- 应用层 - 计算机应用之间的协议,如HTTP,FTP,SMTP等 - 表示层 - 对应用数据做格式翻译,编解码,加解密,压缩解压缩,如ssl,tls - 会话层 - 建立,管理,释放会话,包含相互认证等行为。 - 传输层 - 将上面的数据分割打包,用于传输,如tcp,udp - 网络层 - 路由 阅读全文
posted @ 2025-08-27 11:31
CJTARRR
阅读(3)
评论(0)
推荐(0)
摘要:
架构 三层架构 - mcache: 逻辑处理器(P)私有缓存,用于快速分配小对象。 - mcentral: 所有逻辑处理器(P)共享的中央缓存,为mcache提供内存。 - mheap: 程序全局堆,整个程序共享的一片虚拟地址空间。 内存分配 分配单位: - mspan: 真正存储对象的内存块。 内 阅读全文
posted @ 2025-08-27 11:04
CJTARRR
阅读(6)
评论(0)
推荐(0)
摘要:
new new总是返回指定类型的指针 new仅能做零值初始化,不涉及引用类型底层数据的初始化 new可以用于所有类型数据的创建 make make直接返回指定类型 make会自动处理引用类型底层数据的初始化 make只能用于初始化切片(slice),映射(map),通道(chan) 阅读全文
posted @ 2025-08-27 10:45
CJTARRR
阅读(7)
评论(0)
推荐(0)
摘要:
安装 go get github.com/go-playground/validator/v10 基础示例 package main import ( "fmt" "github.com/go-playground/validator/v10" ) type User struct { Name s 阅读全文
posted @ 2025-08-27 10:14
CJTARRR
阅读(58)
评论(0)
推荐(0)
浙公网安备 33010602011771号