Memcache如何实现分布式存取?

前言

     上一篇主要总结了memcache的基本概念以及工作流程,这一篇着重总结它内部的存储机制


分布式和集群辨析

        进入项目之后,经常听到的就是这两个词,要想了解memcache的机制,我认为首先要了解清楚分布式和集群的概念到底是什么,他们二者有什么关系,有什么不同。

  • 分布式:分布式处理是将不同地点的,或具有不同功能的,或拥有不同数据的多台计算机通过通信网络连接起来,在控制系统的统一管理控制下,协调地完成大规模信息处理任务的计算机系统。简单地说,分布式处理就是多台相连的计算机各自承担同一工作任务的不同部分,在人的控制下,同时运行,共同完成同一件任务
  • 集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。简单的说,集群就是几台计算机同时部署同一个任务。

  • 辨析

  1. 分布式将任务分成不同的节点,每一个节点都可以做成一个集群,每一个任务都可以同时部署在几台计算机上来完成这一部分的工作,一个服务器宕机,别的服务器可以顶上,但是如果这一个节点垮了,那这个业务也就不能再正常运行了。
  2. 分布式缩短了单个任务的执行时间从而提高效率,集群则是通过提高单位时间内的任务数来提高效率
  3. 分布式解决的是高并发的问题;集群解决高可用的问题


memcache的分布式算法

      memcache虽然称为“分布式”缓存服务器,但服务端并没有“分布式”功能,memcache集群之间不会相互通信。他的分布式功能完全是由客户端程序实现


      我们看下边这张图:假设我们的集群部署了三台服务器,分别于客户端程序的node1,node2,node3相对应

Memcache如何实现分布式存取?_第1张图片


        现在假设我们要保存key值为“beijing”、"shanghai"、"tianjin"、"shenzhen"、"hangshou"这五个数据,首先向memcache中添加“beijing”,首先由应用程序服务器发给memcache服务端,经过路由算法,就会决定保存在哪一个服务器上,服务器选定后,即命令他保存“beijing”及其值。取值的时候也是相同的算法确定服务器,来决定从哪一个服务器上取出这个值。这样就实现了分布式的存取,如果一个服务器宕机,上边的数据都不可用了,但是存在两外两个服务器,还是可以继续工作的。


总结

      下一章,将要总结一下memcache的一致性问题,也就是路由算法具体是如何实现的:MemCached一致性详解





你可能感兴趣的:(-----,【Memcache】)