基于 Golang 实现的分布式缓存
- 单机缓存和基于 HTTP 的分布式缓存 维护一个group的数据结构,提供命名式的管理缓存和填充缓存。单机流程是先查缓存,缓存没有的话,通过自定义回调函数从数据库或者文件内获取缓存 分布式缓存是先通过一致性哈希获取节点,之后流程就和单机一样了
- 最近最少访问(Least Recently Used, LRU) 缓存策略 维护一个cache数据结构,对缓存的增加与获取。
- 使用 Go 锁机制防止缓存击穿
- 使用一致性哈希选择节点,实现负载均衡
- 使用 protobuf 优化节点间二进制通信
- byteview数据结构 对实际缓存的封装,
- 节点之间用http通信 维护httpPool的数据结构