zoukankan      html  css  js  c++  java
  • 理解Memcached的分布式

    Memcached尽管是"分布式"的缓存系统,但是服务器端并没有分布式功能。各个Memcached实例不会相互通信以共享信息,Memcached如何进行分布式完全取决于客户端的实现。

    如下图所示: 一共部署了4个Memcached实例,分别在机器127.0.0.2、127.0.0.3、127.0.0.4、127.0.0.5上,当客户端需要将某个"键值对"存储在Memcached上时,客户端会进行第一次HASH,计算该"键值对"会存储在哪个Memcached实例中。

    在客户端中可以通过配置SockIOPool的servers参数来保存服务器地址列表,通过weight参数配置每台服务器的权重。SockIOPool提供了连接池的服务,可以通过SocketIOPool来配置memcached服务器相关信息,比如最大连接数、最小连接数等。

    一个key只能存放在一台Memcached实例中, 是不会在多个实例上有多份拷贝的,这样的话既可以防止出现刷新不同步的情况,也可以避免磁盘空间的浪费。

    Memcached的分布式特点:

      1.服务器端不关心分布式

      2.依靠客户端来实现分布式

      3.客户端存储着可以访问到Memcached实例的列表

      4.在客户端用算法来保证,对同样的key值的数据,读写都操作同一个服务器 

    分布式中根据余数计算分散的方式

    分布式中的一致性Hash算法

  • 相关阅读:
    K-lord #1
    P1220 关路灯 (区间DP)
    P1136 迎接仪式 (动态规划)
    P1063 能量项链 (区间DP)
    444 D. Ratings and Reality Shows
    P1896 [SCOI2005]互不侵犯King
    P1841 [JSOI2007]重要的城市
    P1134 阶乘问题
    P1414 又是毕业季II
    P1450 [HAOI2008]硬币购物
  • 原文地址:https://www.cnblogs.com/xinhuaxuan/p/6083341.html
Copyright © 2011-2022 走看看