groupcache源码阅读笔记

groupcache是Brad Fitzpatrick用Go语言编写的分布式缓存系统,它既作为客户端也作为服务器,简化了部署流程。通过一致性哈希、ProtoBuf进行数据交互,结合LRU策略管理内存。在get请求过程中,利用sync.once初始化peers,通过singleflight避免并发请求,优化性能。此外,介绍了groupcache的一种部署架构。
摘要由CSDN通过智能技术生成

groupcache简介

已发布至个人博客,地址在这里
groupcache是大神Brad Fitzpatrick使用golang开发的一个缓存系统。代码地址在这里。可以作为memcache的替代品存在。不过两者也是有不同的,groupcache既是客户端也是服务器,也就是说它是作为一个库存在的,跟业务代码共生,这样的好处就是,部署简单,谁用谁知道。
我在刚开始看代码的时候,grep了半天main,什么都没找到,囧,希望大家先理解这一点。
groupcache的代码结构包括下面几部分:
这里写图片描述

  1. consistenthash一致性hash,其作用参见这里,在groupcache里,其用来决定key存放在哪个实例里面。
  2. groupcachepb protobuffer的源码在这里,在groupcache中,同一个group中的多个实例交互数据,使用pb,减少数据体积。
  3. lru 这里是最终存数据的地方,里面使用了两种数据结构,map和list࿰
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值