# geeCache **Repository Path**: simonzli/geeCache ## Basic Information - **Project Name**: geeCache - **Description**: No description available - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-10-26 - **Last Updated**: 2021-11-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 支持单机缓存和基于http的分布式缓存 最近最少访问(Least Recently Used,LRU)缓存策略 使用GO锁机制防止缓存击穿 使用一致性哈希选择节点,实现负载均衡 使用protobuf优化节点间二进制通信 LRU缓存策略 如果数据最近被访问过,那么将来被访问的几率也会更高。 LRU通过维护一个队列,如果某条记录被访问了,则移动到队尾,那么队首则是最近最少被访问的数据,淘汰该条记录即可。 缓存雪崩: 缓存在同一时刻全部失效,造成瞬间DB请求量大,压力骤增,引起雪崩。缓存雪崩通常是因为缓存服务器宕机、缓存的key设置了相同的过期时间。 缓存击穿:一个存在的key,在缓存过期的一瞬间,同时有大量的请求,这些请求都击穿缓存到DB,造成瞬时DB请求量大,压力骤增。 缓存穿透:查询一个不存在的数据,因为不存在则不会写入到缓存,所以每次都请求DB,如果瞬间流量过大,穿透到DB,导致宕机。