Memcache 和 Memcached 有什么区别

分类:PHP相关 时间:2023-11-07 11:42 浏览:0 评论:0
0

Memcache Memcached 看起来只是相差一个字母,平时老是搞混,今天整理下两者之间的区别

Memcached,简单来说就是一个免费开源并且高性能的分布式内存对象缓存系统,主要用于加速动态 Web 程序,减轻数据库负载

Memcached

Memcached 可以存储来自调用数据库 API,或者页面渲染生成的任意类型的数据(字符串,对象)到内存中,也可以直接中内存中去读取它的 API 支持目前大部分流行的编程语言,Memcached 的官方网站:http://memcached.org/

首先 Memcached 是有服务端客户端的,对于 PHP 来说,客户端就是 PHP 扩展

Memcached 服务端

启动 Memcached 服务端是通过启动一个 memcached 的程序来实现的,这里的 d 的英文是 daemon,意思就是常驻进程的意思

所以 Memcache 是对这个内存缓存的一个常用称呼,而 Memcached 是这个缓存数据库的实际运行程序

PHP 的 Memcached 客户端

PHP 有两个 Memcached 客户端:“PHP Memcache 扩展” “PHP Memcached 扩展”,这就是是我们搞混的地方

PHP Memcache 扩展用 PHP 实现的,支持面向对象面向过程两种接口,2004年就实现了,是老客户端,而且功能少,属性也可设置的少
函数列表:http://php.net/manual/zh/book.memcache.php

PHP Memcached 扩展基于 libmemcached 开发的,使用 libmemcached 库提供的 API 与 Memcached 服务进行交互,只支持面向对象的接口,2009年才实现,Memcached 扩展功能更加完善,支持的函数更多,比如支持批量操作,现在一般建议使用 Memcached 扩展
函数列表:http://php.net/manual/zh/book.memcached.php

下面是一个支持功能对照列表:

对比项 Memcache Memcached
发布日期 2004-06-08 2009-01-29 (beta)
仍在维护? Yes Yes
第三方依赖 None libmemcached
Key自动修复 Yes No
Append/Prepend No Yes
自动序列化 Yes Yes
二进制协议 No Optional
CAS No Yes
压缩 Yes Yes
超时设置 Connect Only Various Options
一致性哈希 Yes Yes
延迟Get No Yes
Multi-Get Yes Yes
Session支持 Yes Yes
指定Server get/set No Yes
数字存储 Converted to Strings Yes
支持长连接? Yes Yes

必须同时安装服务端客户端

如果安装了 Memcached 服务端不安装扩展,那么 PHP 无法操控 Memcached

同样如果安装了 PHP Memcached 扩展(PHP Memcache PHP memcached 两者选择一个),但是没有安装 Memcached 服务端,那么这个就无法使用

只有同时安装了 Memcached 服务端 PHP 客户端扩展才可以提高动态网站性能

在 WordPress 使用 Memcached


WPJAM Basic 插件已经集成了 Memcached,下载 WPJAM Basic 之后,将 wpjam-basic/template/ 目录下的 object-cache.php 文件复制到 wp-content 目录下即可


  • WordPress果酱的知识星球
  • WPJAM Basic 插件项目页
  • 下载 WPJAM Basic
  • 有问题也可以在知乎@denishua

生成海报 分享 打赏作者
1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. PHP相关 > Memcache 和 Memcached 有什么区别

用户评论