Memcache的分布式应用

转载 2007年10月06日 00:28:00
原贴:http://www.ooso.net/index.php/archives/263

Memcache的分布式应用


早就听说memcached是一个不错的分布式内存缓存系统,做了些功课想把这memcache用到实际当中来.因为一个好的缓存系统,能给web应用带来不小的性能提升.做了一些功课之后,做了下面几点总结:

  • memcache适合与web server安装在同一server上
  • memcache可以在n个端口开n个进程,如果和web server在同一机器的话,还能减少网络开销.
  • 配置简单,启动一个进程就行了,免去了配置文件

我更关心的是,memcache的分布式应用应该如何部署.带着这个问题,我在各搜索引擎上做了进一步的功课.最初找到的办法是,首先启动n个memcache进程,这些进程可以在不同的server的不同端口上.

然后使用perl的api可以方便的一次链接多个memcache,存储读取机制不明.不久找到php的 一个MemcachedClient类,基本上就是perl里api的再实现.它使用的fscokopen或者socket系列function来直接读 取memcache----这说明只要清楚memcache的网络协议,你甚至不用装什么php的memcache extenstion.看了这个类的实现,基本上弄清楚,它的分布式应用差不多就是将不同的key保存在不同的memcache daemon,不会保留多个副本,也就不存在多memcache同步的问题了.

过了不久俺又有发现,在最新的php手册上找到了memcache::addServer()这方法,它就是为分布式应用而产生的,有了这个支持的话,php的代码就更简单:

PHP:
  1. <?php
  2.    $memcache_obj = new Memcache;
  3.    $memcache_obj->addServer('memcache_host', 11211);
  4.    $memcache_obj->addServer('failed_host', 11211);
  5.    
  6.    $stats = $memcache_obj->getExtendedStats();
  7.    print_r($stats);
  8. ?>

看来php手册也要与时俱进啊,最好是能够直接使用英文版,否则也不会走这么多弯路了:)

官方站点

http://www.danga.com/memcached/

作者: volcano 发表于10月 27, 2006 at 7:52 am

版权信息: 可以任意转载, 转载时请务必以超链接形式标明文章原始出处作者信息及此声明

Tags: memcache, PHP

2 条评论 »

  1. nightsailer 于 2006-10-29 @ 01:17:12 留言

    PECL版本的Memcache extension并没有MCache快多少,另外在负载均衡和灾难恢复上都差很多。可惜,Mache站点已经down了。估计作者离职了吧。

  2. volcano 于 2006-10-29 @ 10:29:03 留言

    还没有仔细看过MCache,不知道它的性能方面的数据如何.
    另外我的同事在应用memcache之后对它的稳定性很满意,负载均衡方面有待加强,但是目前而言已经是能够接受,毕竟是内存缓存,重启之后就会没有

RSS 为此帖反馈评论 · 反向跟踪 网站

 

Memcache如何实现分布式存取?

前言      上一篇主要总结了memcache的基本概念以及工作流程,这一篇着重总结它内部的存储机制 分布式和集群辨析         进入项目之后,经常听到的就是这两个词,要想了解memcac...
  • cd18333612683
  • cd18333612683
  • 2016年08月21日 20:43
  • 853

memcache 是如何实现分布式存储的?

MemCache虽然被称为”分布式缓存”,但是MemCache本身完全不具备分布式的功能,MemCache集群之间不会相互通信,所谓的”分布式”,完全依赖于客户端程序的实现。服务器端仅包括内存存储功能...
  • myhuashengmi
  • myhuashengmi
  • 2016年07月22日 09:46
  • 1228

分布式锁实现方式三 基干Memcache mutex设计模式

分布式锁实现方式三 Memcache mutex设计模式 应用场景 上周六去参加了csdn举办的TUP活动,最后一场的Tim Yang讲的《微博cache设计谈》,个人觉得讲得非常好和非常到位,其中...
  • huwei2003
  • huwei2003
  • 2017年01月20日 17:08
  • 566

分布式缓存Memcache和Redis

引言         针对于现在计算机的CPU和网络设施,对应用程序来说,执行效率的瓶颈,已经不是代码的长度(实现同一个功能)和带宽了,而是,代码访问资源的过程,即:让我们的程序慢下来的罪魁祸首就是I...
  • jiben2qingshan
  • jiben2qingshan
  • 2014年10月30日 00:22
  • 4397

Redis简介 对比Memcache 应用场景

1.  MySql+Memcached架构的问题 Memcached采用客户端-服务器的架构,客户端和服务器端的通讯使用自定义的协议标准,只要满足协议格式要求,客户端Library可...
  • truelove12358
  • truelove12358
  • 2015年10月16日 17:44
  • 1141

memcache分布式集群算法——求模算法

memcached是一个分布式缓存,允许配置多个节点,但是memcached在这多个节点之间不能实现自动分配数据,换句话说,memcached节点之间,是不互相通信的。因此,memcached的分布式...
  • baochao95
  • baochao95
  • 2017年02月28日 09:57
  • 543

PHP之分布式缓存memcached熟悉和操作

如今互联网崛起的时代,各大网站都面临着一个大数据流问题,怎么提高网站访问速度,减少对数据库的操作;作为PHP开发人员,我们一般能想到的方法有页面静态化处理、防盗链、CDN内容分发加速访问、mysql数...
  • wyz365889
  • wyz365889
  • 2015年03月25日 00:25
  • 2471

分布式缓存--redis和memcache

redis      日常开发中,总会接触到一些好玩的东西,比如这篇的redis,一说到redis,可能就有人跟memcache做比较了,是呀, memcache只能说是简单的kv内存...
  • moshenglv
  • moshenglv
  • 2016年11月27日 15:40
  • 1211

分布式memcache实现web集群session同步

php的session默认是文件存储: session.save_handler = files session.save_path = "/var/lib/php/session" 当做we...
  • nuli888
  • nuli888
  • 2016年08月04日 20:23
  • 667

Memcache 介绍与应用场景

Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内...
  • tianwei7518
  • tianwei7518
  • 2015年03月29日 21:21
  • 1441
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Memcache的分布式应用
举报原因:
原因补充:

(最多只允许输入30个字)