咨询电话:023-88959644    24小时服务热线:400-023-8809
NEWS CENTER ·
新闻动态
关注中技互联 关注前沿

介绍:集中式缓存系统Memcached

发表日期:2013-05-15    文章编辑:西西    浏览次数:15    标签:

www.zjcoo.com

   我们首先要搞清楚Memcached是什么?

  memcached是一套分布式的快取系统,当初是Danga Interactive为了LiveJournal所发展的,但目前被许多软件(如MediaWiki)所使用。这是一套开放源代码软件,以BSD license授权释出。

  memcached缺乏认证以及安全管制,这代表应该将memcached服务器放置在防火墙后。

  memcached的API使用三十二位元的循环冗余校验(CRC-32)计算键值后,将资料分散在不同的机器上。当表格满了以后,接下来新增的资料会以LRU机制替换掉。由于memcached通常只是当作快取系统使用,所以使用memcached的应用程式在写回较慢的系统时(像是后端的数据库)需要额外的程式码更新memcached内的资料。

  Memcached适合什么场合?

  我们要知道memcached不是万能的,它也不是适用所有场合。所以就会有许多人对它进行滥用,而遭到了很多人的质疑,认为它根本就不符合缓存系统的条件。

  Memcached 是“分布式”的内存对象缓存系统,那么就是说,那些不需要“分布”的,不需要共享的,或者干脆规模小到只有一台服务器的应用,memcached不会带来 任何好处,相反还会拖慢系统效率,因为网络连接同样需要资源,即使是UNIX本地连接也一样。 在我之前的测试数据中显示,memcached本地读写速度要比直接PHP内存数组慢几十倍,而APC、共享内存方式都和直接数组差不多。可见,如果只是 本地级缓存,使用memcached是非常不划算的。

  Memcached在很多时候都是作为数据库前端cache使用的。因为它比数据库少 了很多SQL解析、磁盘操作等开销,而且它是使用内存来管理数据的,所以它可以提供比直接读取数据库更好的性能,在大型系统中,访问同样的数据是很频繁 的,memcached可以大大降低数据库压力,使系统执行效率提升。另外,memcached也经常作为服务器之间数据共享的存储媒介,例如在SSO系 统中保存系统单点登陆状态的数据就可以保存在memcached中,被多个应用共享。

  需要注意的是,memcached是使用内存来管理数据的,所以它是易失的,当服务器重启,或者memcached进程中止,数据便会丢失,所以memcached不能用来持久保存数据。很多人的错误理 解,memcached的性能非常好,好到了内存和硬盘的对比程度,其实memcached使用内存并不会得到成百上千的读写速度提高,它的实际瓶颈在于 网络连接,它和使用磁盘的数据库系统相比,好处在于它本身非常“轻”,因为没有过多的开销和直接的读写方式,它可以轻松应付非常大的数据交换量,所以经常 会出现两条千兆网络带宽都满负荷了,memcached进程本身并不占用多少CPU资源的情况。

  经过这篇文章以后,中技衷心的希望大家可以不要再对Memcached有偏见,它其实是一个很好的缓存系统,但是由于被滥用了而导致很多人对它产生了怀疑,希望大家从以上内容就可以从中知道Memcached这个缓存系统能发挥最大作用的地方在哪里。

重庆中技互联网信息咨询有限公司 www.zjcoo.com

如没特殊注明,文章均为中技互联原创,转载请注明来自www.zjcoo.com
相关新闻

CopyrightZJCOO technology Co., LTD. All Rights Reserved.    

渝ICP 备11003429号

  • qq客服
  • 公众号
  • 手机版
  • 新浪微博