# GogoCache **Repository Path**: Gogo-gitee/gogo-cache ## Basic Information - **Project Name**: GogoCache - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-09-28 - **Last Updated**: 2021-10-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GogoCache #### 介绍 分布式缓存 - **基于高性能网络I/O框架gnet。** - **自定义节点之间的通信的应用层协议,使用protobuf进行序列化。** gnet框架是传输层的框架,因此可以对传输层交付的数据进行自定义的解析。 - **基于LRU缓存淘汰策略。** 当缓存大小超出最大容量时,实现键值对的自动淘汰。 - **使用zookeeper作为分布式节点的注册中心。** 利用zookeeper的发布订阅,实现对服务节点变更的实时监控。 - **基于分段锁的思想。** 将节点的缓存划分为几个group,分别加锁,对于某个key的请求,根据其哈希值,分派到特定group上面,实现对缓存的并发读写。 - **使用sync.WaitGroup防止缓存击穿。** 对于同一个key的请求,维护一个WaitGroup,只有请求可以查询数据库,其他阻塞在WaitGroup上面。 - **自定义log库。** 在go原生log库的基础上,扩展出多种日志级别。 - **实现了缓存的持久化。** 将接收的缓存操作追加到一个文件中,崩溃后解析该文件,重放操作指令,恢复数据库。