groupcache简介
已发布至个人博客,地址在这里
groupcache是大神Brad Fitzpatrick使用golang开发的一个缓存系统。代码地址在这里。可以作为memcache的替代品存在。不过两者也是有不同的,groupcache既是客户端也是服务器,也就是说它是作为一个库存在的,跟业务代码共生,这样的好处就是,部署简单,谁用谁知道。
我在刚开始看代码的时候,grep了半天main,什么都没找到,囧,希望大家先理解这一点。
groupcache的代码结构包括下面几部分:
![这里写图片描述](https://img-blog.csdn.net/20150728172609468)
- consistenthash一致性hash,其作用参见这里,在groupcache里,其用来决定key存放在哪个实例里面。
- groupcachepb protobuffer的源码在这里,在groupcache中,同一个group中的多个实例交互数据,使用pb,减少数据体积。
- lru 这里是最终存数据的地方,里面使用了两种数据结构,map和list