ZBIGBEAR / 7d-cache

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

7d-cache

day1

实现一个LRU算法,代码约100行

day2

介绍 sync.Mutex 互斥锁的使用,并实现 LRU 缓存的并发控制。

实现 GeeCache 核心数据结构 Group,缓存不存在时,调用回调函数获取源数据,代码约150行

day3

介绍如何使用 Go 语言标准库 http 搭建 HTTP Server

并实现 main 函数启动 HTTP Server 测试 API,代码约60行

day4

实现一致性哈希代码,添加相应的测试用例,代码约60行

day5

注册节点(Register Peers),借助一致性哈希算法选择节点。

实现 HTTP 客户端,与远程节点的服务端通信,代码约90行

启动客户端

go run server/main.go

启动3个模拟服务端

go run main.go -server=true -port=8089
go run main.go -server=true -port=8090
go run main.go -server=true -port=8091

通过url访问

http://0.0.0.0:8088/cache/student/Jack

通过查看日志可以发现相同的group和key,总是路由到同一个server

day6

使用 singleflight 防止缓存击穿,实现与测试。代码约70行

day7

使用 protobuf 进行节点间通信,编码报文,提高效率。代码约50行

About


Languages

Language:Go 100.0%