Skip to content

Geecache分布式缓存(etcd做服务注册和服务发现,grpc通信)

Notifications You must be signed in to change notification settings

zhouxing9454/Geecache

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Geecache

本项目是基于极客兔兔的分布式缓存GeeCache的基础上进行编写的。

结构目录

│  go.mod
│  go.sum
│  main.go	main函数,用于测试
│  README.md	MD文档
│  run.bat	windows下测试
│  run.sh	Linux下测试
│
└─geecache
    │  byteview.go	缓存值的抽象与封装
    │  cache.go	并发控制
    │  geecache.go	负责与外部交互,控制缓存存储和获取的主流程
    │  geecache_test.go 			
    │  peers.go	抽象 PeerPicker
    │  grpc.go	Server和Client的实现
    │
    ├─consistenthash
    │      consistenthash.go	一致性哈希算法
    │      consistenthash_test.go	
    │
    ├─geecachepb
    │      geecachepb.pb.go
    │      geecachepb.proto	protobuf文件
    │      geecachepb_grpc.pb.go
    │
    ├─lfu
    │      lfu.go	LFU算法
    │      lfu_test.go
    │
    ├─lru
    │      lru.go	LRU算法
    │      lru_test.go
    │
    ├─registry	
    │      discover.go	服务发现
    │      register.go	服务注册
    │
    └─singleflight
            singleflight.go	防止缓存击穿
            singleflight_test.go

项目改进

  1. 实现lfu算法和lru算法两种缓存淘汰策略。
  2. 加入热点缓存hotCache
  3. 设置ttl和惰性删除
  4. 增加了grpc进行通信
  5. 使用etcd做服务注册和服务发现

项目GeeCache面试题(个人版,可能不够全面)

About

Geecache分布式缓存(etcd做服务注册和服务发现,grpc通信)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published