论文部分内容阅读
Redis服务器是目前应用十分广泛的键值对数据库,其具有丰富的数据结构、事务功能、持久化功能和订阅发布机制,已经逐渐取代Memcache成为首选缓存服务器。但是随着移动互联网的发展,数据量的膨胀使得网络中的服务器负载越来越大,同时广大互联网用户对服务响应速度的要求不断增加。单实例Redis服务器显然不能达到生产要求,需使用Redis集群提供服务。而现有Redis集群方案多种多样,随着官方提供的原生Redis集群方案在生产环境中被广泛使用,也暴露了一些不足。主要有以下三点不足:高客户端复杂度、没有考虑CPU的亲和性以及不提供内存负载均衡。 通过研究现在市面上流行的几种Redis集群策略,分析了几种策略的优缺点。并着重对原生Redis集群方案(官方集群方案)的原理进行了深入研究,针对上述三点不足,提出了对原生Redis集群的集群节点代理转发客户端请求、部署时实现Redis实例与CPU核的绑定和提供内存负载均衡控制节点的三种优化方案。 由于Redis是一款开源的服务器程序,通过修改服务器源码和编写脚本对提出的三个优化建议进行了实现。通过增加请求转发、接收模块和代理客户端实现了请求在集群内部的转发功能;通过部署脚本实现了Redis实例和CPU核的绑定;通过增加负载均衡控制节点实现了集群中各物理机器的内存使用率的均衡,并使用备用服务器和心跳机制实现了负载均衡服务器的高可用性。最后,通过在实验室环境下部署和测试优化后的集群,验证了在每次连接上的请求数据量在中小规模时,优化后的集群有显著的性能优势,同时,验证了内存负载控制节点起到预期效果。