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算法

理解Memcached的分布式的更多相关文章

  1. memcached全面剖析--2.理解memcached的内存存储

    下面是<memcached全面剖析>的第二部分. 发表日:2008/7/9 作者:前坂徹(Toru Maesaka) 原文链接:http://gihyo.jp/dev/feature/01 ...

  2. GPS部标监控平台的架构设计(十一)-基于Memcached的分布式Gps监控平台

    部标gps监控平台的架构,随着平台接入的车辆越来越多,架构也面临越来越大的负载挑战,我们当然希望软件尽可能的优化并能够接入更多的车辆,减少在硬件上的投资.但是当车辆增多到某一个临界点的时候,仍然要面临 ...

  3. memcached的分布式

    今天写点周末在火车上看的memcached的东西: 一:memcached的分布式 虽然memcached被称为“分布式”缓存服务器,但是服务器端并没有“分布式”的功能.而是通过客户端来实现的. Me ...

  4. python操作memcached以及分布式

    memcached 是以 LiveJournal 旗下 Danga Interactive 公司的 Brad Fitzpatric 为首开发的一款软件.现在已成为 mixi.Facebook.Live ...

  5. memcached全面剖析–2. 理解memcached的内存存储

    Slab Allocation机制:整理内存以便重复使用 最近的memcached默认情况下采用了名为Slab Allocator的机制分配.管理内存. 在该机制出现以前,内存的分配是通过对所有记录简 ...

  6. 深入理解memcached

    网上有5篇介绍memcached的文章,写的挺好,这里转过来. memcached完全剖析–1. memcached的基础 memcached全面剖析–2.理解memcached的内存存储 memca ...

  7. memcached整理の分布式集群算法

    memcached如何实现分布式? memcached是一个“分布式内存对象缓存系统”,然而memcached并不像mongodb那样,允许配置多个节点,且节点之间“自动分配数据”,就是说memcac ...

  8. memcached缓存分布式部署方案

    一.分布式方案介绍 比较流行的两种方案: 1.取余分布: 计算key的哈希值,与服务器数量取余,得到目标服务器.优点:实现简单,当某台服务器不可用时,故障转移方便:缺点:当增减服务器时, Key与服务 ...

  9. Memcached认知[分布式]

    Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载. Memcached的服务器客户端通信使用简单的基于文本行的协议. Memcached基于一个存储键/值对的 ...

随机推荐

  1. JSP_通过表格显示数据库的信息

    在本篇文章中,小编将介绍在jsp页面中通过表格显示数据库的实现:下面我们以“新闻发布系统”中显示一级标题的信息为例进行讲述,在新闻发布系统中存在一二级标题,在后台可以对标题进行管理,可查询标题等信息 ...

  2. CSS基础知识真难啊-font

    不吐不快啊!!!! 上午测试还好好的,下午再写一次准备发出来就出错了!! 传说中程序媛三大错觉:我肯定没错,刚才还好好的,一定是有人改了我代码.. 我的口头禅都快变成“刚刚还好好的”了! 事情是这样的 ...

  3. ofo走出校园观察:市场定位导致产品错位?

    Ofo和摩拜单车虽然同样都是做单车共享,但实际上两者在最初的市场定位是有明显的差异的,因此提供的产品方案也存在巨大的差异. 市场定位不同,导致产品方案的巨大差异 摩拜单车一开始就定位于开放市场,充分的 ...

  4. POJ 3735 Training little cats

    题意 维护一个向量, 有三种操作 将第\(i\)个数加1 将第\(i\)个数置0 交换第\(i\)个数和第\(j\)个数 Solution 矩阵乘法/快速幂 Implementation 我们将向量写 ...

  5. HDU 4388 To the moon

    传送门 To the moon Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  6. primefaces 通过selectOneMenu更新显示隐藏区域

    最重要的是update的区域要指定整个panel,而不是想更新的那个组件 <h:form id="frm"> <h:panelGrid id="pane ...

  7. [转发]黑苹果修改DSDT彻底解决关机不断电和睡眠问题

    1. 在 Method (_PTS, 1, NotSerialized)之前添加一个OperationRegion (PMRS, SystemIO, 0x0430, 0×13),如下: Operati ...

  8. js021-Ajax与Comet

    js021-Ajax与Comet 本章内容: 使用XMLHttpRequet对象 使用XMLHttpRequet事件 跨域Ajax通信的限制 Ajax技术的核心是XMLHttpRequet对象 21. ...

  9. 转: CvMat,Mat和IplImage之间的转化和拷贝

    1.CvMat之间的复制 //注意:深拷贝 - 单独分配空间,两者相互独立 CvMat* a; CvMat* b = cvCloneMat(a); //copy a to b 2.Mat之间的复制 / ...

  10. tp中附件上传文件,表单提交

    public function tianjia(){ $goods=D('Goods'); if(!empty($_POST)){ if($_FILES['f_goods_image']['error ...