Memcache 和 Memcached 有什么区别
Memcache Memcached 看起来只是相差一个字母,平时老是搞混,今天整理下两者之间的区别
Memcached,简单来说就是一个免费开源并且高性能的分布式内存对象缓存系统,主要用于加速动态 Web 程序,减轻数据库负载
![Memcached](https://www.12blog.cc/uploadfile/202311/8344c33f9cee772.jpg)
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
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. PHP相关 > Memcache 和 Memcached 有什么区别