
golang分布式缓存
文章平均质量分 91
分7天实现,每天完成的部分都是可以独立运行和测试的,就像搭积木一样,每天实现的特性组合在一起就是最终的分布式缓存系统。每天的代码在 100 行左右。
材料苦逼不会梦到计算机白富美
这个作者很懒,什么都没留下…
展开
-
golang分布式缓存项目 Day6 防止缓存击穿
singleflight 是一个非常有用的包,它提供了一种机制来抑制对某个函数的多次重复调用。这个包特别适用于避免在高并发场景下对同一资源的重复请求,比如在缓存击穿问题中,多个请求同时访问同一个资源时,singleflight 可以确保这些请求中只有一个实际执行,其他请求则等待这个结果,从而减少对后端服务的压力核心概念singleflight 包中定义了一个名为 Group 的结构体类型,它表示一类工作,并形成一个命名空间,在这个命名空间中,可以使用重复抑制来执行工作单元。原创 2024-11-13 21:27:26 · 1595 阅读 · 0 评论 -
golang分布式缓存项目 Day5 分布式节点
概括性流程:fill:#333;color:#333;color:#333;fill:none;开始将多个服务器节点绑定到本地服务器gee上peers 监听8001, 8002, 8003端口并将端口监听到的请求交由peers绑定的ServeHTTP处理创建与用户面对的api客户端http.ListenAndServe 监听9999端口http.Handle处理路径为/api的请求发出http://localhost:9999/api?key=Tom的HTTP请求。原创 2024-11-13 20:23:02 · 1997 阅读 · 0 评论 -
golang HTTP基础
http.ListenAndServe 是 Go 语言标准库 net/http 包中的一个函数,用于启动一个 HTTP 服务器并监听指定的端口,以便接收和处理来自客户端的 HTTP 请求。这个函数是构建 Web 服务器和 Web 服务的基础。:一个字符串,指定服务器监听的网络地址和端口。通常格式为 “host:port”,例如 “:8080” 表示监听所有可用网络接口上的 8080 端口。如果省略 host 部分,默认监听所有网络接口**(即 0.0.0.0)。原创 2024-11-13 12:00:16 · 1155 阅读 · 0 评论 -
golang分布式缓存项目 Day4 一致性哈希
golang分布式缓存项目 Day4 一致性哈希原创 2024-11-12 10:16:48 · 812 阅读 · 0 评论 -
golang分布式缓存项目 Day3 HTTP服务端
golang分布式缓存项目 Day3 HTTP服务端原创 2024-11-11 10:23:24 · 906 阅读 · 0 评论 -
golang分布式缓存项目 Day2 单机并发缓存
var (mu.Lock()return gmu.RLock()return g一个 Group 可以认为是一个缓存的命名空间,每个 Group 拥有一个唯一的名称 name。比如可以创建三个Group,缓存学生的成绩命名为 scores,缓存学生信息的命名为 info,缓存学生课程的命名为 courses。第二个属性是 getter Getter,即缓存未命中时获取源数据的回调(callback)。第三个属性是 mainCache cache,即一开始实现的并发缓存。原创 2024-11-10 16:37:10 · 807 阅读 · 0 评论 -
golang分布式缓存项目 Day1 LRU 缓存淘汰策略
golang实现分布式缓存项目 Day1原创 2024-11-07 20:54:15 · 1022 阅读 · 0 评论