memcache和memcached之间的区别和联系

  memcache和memcached区别:php

  Memcache是什么?
Memcache是一个自由和开放源代码、高性能、分配的内存对象缓存系统。用于加速动态web应用程序,减轻数据库负载。它能够应对任意多个链接,使用 非阻塞的网络IO。因为它的工做机制是在内存中开辟一块空间,而后创建一个Hash表,Memcached自管理这些Hash表。Memcache官方网站:http://memcached.org/web

  Memcached又是什么?
Memcache是该系统的项目名称,Memcached是该系统的主程序文件(字母d能够理解为daemon),以守护程序方式运行于一个或多个服务器中,随时接受客户端的链接操做,使用共享内存存取数据。数据库

  memcache客户端(php)
  PHP有两个memcache客户端:php memcache和php memcached。
  php memcache独立用php实现,是老客户端,从咱们实践中已发现有多个问题,并且功能少,属性也可设置的少;
  memcache的下载地址:http://pecl.php.net/package/memcache
  php memcached是基于原生的c的libmemcached的扩展,更加完善,建议替换为php memcached。
  memcached的下载地址:http://pecl.php.net/package/memcached缓存

 

  因为在项目后期会引入缓存策略对角色的数据进行缓存,而如今咱们大部分缓存都使用文件缓存,开发过网页游戏的朋友们大都知道,语言包和游戏相关的数 据大部分不常常改动,有时候几个星期不须要更新,只是在进行版本更新的时候才从新生成一次数据缓存,而角色的数据和数值时刻在变化着,会频繁的更新和操 做,采用文件缓存会频繁地进行I/O操做,在这个功能上文件缓存就不太适合了,因此对于角色的数据采起内存缓存策略在这里就比较合适。

  对于内存缓存,比较经常使用的有两种memcache和memcached扩展。而memcached和memcache的守护进程memcached同名, 比较容易引发混淆,甚至提到memcached,有些人第一想到的是后台的守护进程,这里仍是有必要分析一下二者之间的区别,如下观点仅是我的观点,但愿 朋友进行补充和更正。
首先咱们能够从php官方手册上能够清晰的看到二者的区别:
memcache:http://cn2.php.net/manual/en/book.memcache.php
memcached:http://cn2.php.net/manual/en/book.memcached.php
服务器

memcache是彻底在PHP框架内开发的,memecached是使用libmemcached的。从手册上看,memcached 会比 memcache 多几个方法,使用方式上都差很少。网络

memcache是原生实现的,可是使用libmemcached的memached只支持OO接口,而 memcache则是OO和非OO两套接口并存,之后随着memcached服务器端的改进,这个lib也一定会立刻跟进的。而memcache却不必定 能作到按时跟进。框架

memcached,还有个很是称赞的地方,就是flag不是在操做的时候设置了。而是有一个统一的setOption()。memcached 实现了更多的 memcached 协议(毕竟是基于 libmemcached 库的)。memcached

这里有另一个对比表,很明显,用 memcached 会让人放心不少:http://code.google.com/p/memcached/wiki/PHPClientComparison性能

差异比较大的一点是,memcached 支持 Binary Protocol,而 memcache 不支持,意味着 memcached 会有更高的性能。不过,还须要注意的是,memcached 目前还不支持长链接。网站

 

参考文档:   http://wenku.baidu.com/link?url=u5fGrzU3lfcO6p0FbkLjwdGlYIQEa8QanrFKwFZJZQu1zv7Z_gpl2P0Rr4hjBqHfz0dHi65y-JusSGGG9UYN-MfpIn86fo8ZTApmkOta6m7

      http://blog.csdn.net/lein_wang/article/details/52756859

相关文章
相关标签/搜索