groupcache是go语言开发的缓存库。用于替换memcache的。
cd example
go build
./example -addr=:8080 -pool=http:https://127.0.0.1:8080
# 查询
curl localhost:8080/color?name=green
#00FF00
curl localhost:8080/color?name=red
#FF0000
.
├── byteview.go
├── byteview_test.go
├── consistenthash // 实现一致性hash功能
├── groupcache.go // grpc生成的代码,用于远程调用
├── groupcachepb // grpc生成的代码,用于远程调用
├── http.go // http相关的代码
├── lru // 实现缓存的置换算法(最近最少使用)
├── peers.go // 单个节点的一些接口实现
├── singleflight // 实现多个同请求的合并,保证“同时”多个同参数的get请求只执行一次操作功能
├── sinks.go
└── testpb
- consistenthash(提供一致性哈希算法的支持),
- lru(提供了LRU方式清楚缓存的算法),
- singleflight(保证了多次相同请求只去获取值一次,减少了资源消耗), https://segmentfault.com/a/1190000018464029
https://www.jianshu.com/p/5c3db568b8b8 https://juejin.im/entry/57c3ce697db2a200680ab024