APCu 相关记录
一、APCu 是什么
APCu 全称 Alternative PHP Cache User,是一个 PHP 内存缓存扩展。
它的作用是:
把经常用到的数据直接缓存在 服务器内存(RAM) 里,
这样 PHP 脚本可以从内存中直接读取,而不用再去读文件或访问数据库。
简单理解:
Redis 是跨语言、跨进程的独立缓存服务器;
APCu 是 PHP 自带的、轻量级的“本地内存缓存”。
二、APCu 的特点
速度极快:因为它直接在 PHP 的内存空间里存取数据,没有网络通讯延迟。
零配置、无依赖:装好扩展即可使用,不需要独立服务。
适合保存轻量数据,比如:
网站配置(config.php 的数据结构)
路由表、菜单、字典
小规模的缓存查询结果
数据保存在 PHP-FPM 进程内存中:
每个进程的缓存独立,不会自动同步。
三、典型用法
// 存入缓存
apcu_store('site_config', $config_array);
// 获取缓存
$config = apcu_fetch('site_config');
// 删除缓存
apcu_delete('site_config');
// 检查缓存是否存在
if (apcu_exists('site_config')) {
echo "缓存命中";
}
用法非常简单,就像操作一个数组一样。
四、使用场景举例
网站初始化时读取配置文件(config.php),
然后存入 APCu,后续所有请求都从内存中取,避免频繁 I/O。
两者搭配能让纯 PHP 项目性能接近静态化站点。
五、与其他缓存的比较
特性 APCu Redis 文件缓存
存储位置 内存(PHP进程内) 内存(独立服务) 硬盘
速度 极快 快 较慢
是否持久化 否 可选 是
是否跨进程 否 是 是
适用场景 配置、字典、轻缓存 全站缓存、共享数据 静态缓存、日志类
是否需安装服务 否 是 否
简单总结:
APCu 是“单机小缓存”,
Redis 是“多站共用缓存”。
两者可以同时存在,互不冲突。
六、常见问题
重启 PHP 会丢缓存吗?
会。APCu 是内存缓存,进程结束就清空。
多网站可以共用 APCu 吗?
可以,但要理解其原理:
每个站点、每个 PHP-FPM 进程的 APCu 内存都是独立的。
如果你想实现“看似共用”的效果,可以这样设计:
访问时,先尝试从 APCu 读取;
如果没有,就从文件读取配置
读取成功后再写入 APCu。
这样只需几个请求,就能让所有进程都“自动热启动”出同样的缓存数据。
对配置这类读多改少的内容来说,这种方式既简单又高效。
缓存没命中有影响吗?
没影响。配置文件兜底就行,多几次访问自然会填满所有进程的缓存。
七、小结
APCu 就像是 PHP 的“小口袋”,
放点常用小东西(配置、数组、查询结果)非常方便。
不占资源、不费事,还能明显减少文件读取次数。
如果是单机网站、配置稳定,APCu 是非常实用的选择;
如果是多站点或分布式架构,再考虑用 Redis 替代。
编辑:千欧中软
阅读量:10
下一篇: Redis相关记录
更多新闻
Copyright © 千欧中软 版权所有 www.qozr.com seo | 网站建设 [渝ICP备15005074号]
渝公网安备50011802011077 | sitemap