php

Memcache、Memcached简明介绍

很多人刚接触 PHP 缓存时,会被这些名字搞晕:Memcache、Memcached、APCuRedis……

其实,它们都是为了加速网站、减少数据库或文件读取次数的工具,只是实现方式和适用场景不同。


一、Memcache 和 Memcached 是什么?

Memcache 和 Memcached 名字很像,功能也差不多。

它们都属于 “内存缓存系统”,可以把常用数据放到内存中,避免每次都去查数据库或读文件,从而显著提升网站访问速度。

比如:

网站每次运行时,都要读取 config.php 配置文件,或者从数据库中读取站点设置。

这些信息几乎不会频繁变化,非常适合放入缓存中。

这样不仅能减少 I/O 开销,还能让 PHP 响应更快。


二、两者的区别

特性 Memcache Memcached

年代 较早期版本 新版、功能更完善

PHP扩展名 memcache memcached

协议 文本协议 二进制协议

支持语言 主要PHP 多语言支持(PHP、Java、Python等)

性能 稳定但老旧 更快、更高效,支持压缩、长连接等

一般现在推荐使用 Memcached 扩展,因为性能更好、维护更活跃。


三、请求方式简述

Memcached 是一个独立运行的缓存服务器。

PHP 程序通过网络请求(TCP/IP)与它通信:

PHP请求 → Memcached服务 → 返回缓存结果

好处是:

多台网站服务器可以共用一个 Memcached;

数据集中缓存,方便统一管理。

缺点是:

需要独立安装服务;

请求走网络,速度比本地内存稍慢一点。


四、APCu 简介(轻量单机版)

如果你的网站是单台服务器,不需要跨机器共享缓存,

APCu 会是更轻更快的选择。它是 PHP 的一个内存缓存扩展,

直接运行在 PHP-FPM 进程内部,不需要网络请求。

常见用途:

缓存网站配置文件内容,比如图片域名、模板路径、接口地址等。

减少文件 I/O 次数,提升性能。

如果配置是 .php 文件形式,还可以配合 opcache 一起用,效果更好。


五、简单代码示例

APCu 示例(单机缓存)

// 设置缓存
apcu_store('site_config', ['cdn' => 'https://img.example.com']);
// 读取缓存
$config = apcu_fetch('site_config');
echo $config['cdn'];

Memcached 示例(跨服务器缓存)

$mem = new Memcached();
$mem->addServer('127.0.0.1', 11211);
// 设置缓存(10分钟过期)
$mem->set('site_config', ['cdn' => 'https://img.example.com'], 600);
// 读取缓存
$config = $mem->get('site_config');
echo $config['cdn'];


六、总结推荐

场景 推荐方案

单机项目、简单缓存 APCu + Opcache

多台服务器共享缓存 Memcached 服务 + PHP Memcached 扩展

更复杂的缓存需求(带持久化、数据结构) Redis


一句话总结:

Memcache 和 Memcached 是老牌的内存缓存系统,APCu 是轻量单机缓存。

如果追求通用性和功能,现在更多人会直接选用 Redis



编辑:千欧中软

阅读量:16

url链接:https://www.qozr.com/cms_memcache-memcached-jian-ming-jie-shao.html

Tag标签: APCu , Memcache , Memcached , OPcache , php , Redis

更多新闻

Copyright © 千欧中软 版权所有 www.qozr.com seo | 网站建设 [渝ICP备15005074号] 渝公网安备50011802011077 | sitemap