突然间想起来应该把memcache和memcached的这个联系写一下,防止以后忘了,毕竟memcached现在用的不是很多。理解的可能没有路过的大牛理解的深,欢迎提出指导意见,不过请保持文明友好交流。
其实 memcache和memcached都是php的扩展,后者可以在某种意义上认为是前者的进阶产品。先看看两者比较
memcache 是一个原生版本,完全是在 PHP 框架内开发的,支持memcache 是一个原生版本,完全是在 PHP 框架内开发的,支持 OO(面向对象) 和非 OO(面向过程) 两套接口并存,而 memcached
是建立在 libmemcached 的基础上的,只支持 OO 接口。这就意味着在安装 memcache 扩展的时候不要求安装其他的东西,但是在安装 memcached 的时候会要求你安装 libmemcached。别嫌麻烦!因为 libmemcached 是 memcache 的 C 客户端,它具有低内存,线程安全等优点。据说新浪微博之前就全面将 PHP 的 memcache 替换成 PHP 的 memcached,在高并发下,稳定性果断提高。
综合描述一下:
PHP有两个memcache客户端:php memcache和php memcached。
- memcache完全在PHP框架内开发的,提供了memcached的接口,memecached扩展是使用了libmemcached库提供的api与memcached服务端进行交互。
- memcache提供了面向过程及面向对象的接口,memached只支持面向对象的接口。
- memcached 实现了更多的 memcached 协议。
- memcached 支持 Binary Protocol,而 memcache 不支持,意味着 memcached 会有更高的性能。不过memcached 目前还不支持长连接。