这是一个基于内存的缓存服务,采用HTTP和TCP双协议进行客户端服务端交互,HTTP主要用来管理查询服务端状态,而TCP协议主要用来进行缓存操作。
NOTE:不可用于生产环境,可以用来学习缓存的相关知识。欢迎大家fork到自己的仓库,一起完善这个项目。
0、采用CS架构
1、基于内存的高速缓存服务
2、基于RocksDB的可持久化实现
3、客户端支持tcp的pipline技术,提升客户端的发送速度
4、支持http/tcp双协议,http用来管理服务端,tcp用来进行业务操作
5、服务端支持基于RocksDB的批量写入技术,增加服务端的rps
6、基于服务端异步技术提升单个链接的响应能力,主要提升GET操作(使用channel)
7、缓存集群的实现(高可用、高可靠),节点之间通过gossip协议互相更新状态,使用一致性散列(虚拟)实现,是一个AP分布式系统,无法保证强一致性
8、实现了自动扩缩容机制
9、为键值对设置过期时间,以达到内存的可复用
待完成
1、github.com/hashicorp/memberlist(一个开源的gossip协议库)
2、statthat.com/c/consistent(使用Go语言写的开源一致性散列库)
