发布于2026-07-08 阅读(0)
扫一扫,手机访问
在Ubuntu上给PHP做缓存,其实是个绕不开的话题。不管你是跑个人博客还是企业级应用,性能优化迟早要碰到这一步。先做一个总体的判断:PHP的缓存方案,不只有一种路子,关键看你手头项目的规模和预算。下面我们聊聊几种常用的实现路径。

先说说OPcache。这几乎是PHP性能优化的第一道关口。它做什么用呢?就是把编译后的PHP脚本字节码缓存起来,省得每次请求都要重新解析和编译。如果连这个都没开,那性能损耗就有点大了。
安装OPcache很简单:
sudo apt update
sudo apt install php-opcache
装完之后,重点在配置。你得在php.ini里把下面的参数调一调:
[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
其中memory_consumption和max_accelerated_files值得根据实际项目调整。项目文件多,这两个值就得往上提。
再说Memcached。这属于分布式内存缓存方案,擅长处理数据库查询结果这类临时数据。很多高并发场景下,它会和OPcache搭配使用。
安装时需要同时装服务端和PHP扩展:
sudo apt update
sudo apt install memcached php-memcached
在代码里用起来也比较直接。一个典型的操作流程是这样的:
$memcached = new Memcached();
$memcached->addServer('localhost', 11211);
$key = 'my_cache_key';
$data = 'my_cache_data';
// 设置缓存,有效期3600秒
$memcached->set($key, $data, 3600);
// 获取缓存
if ($memcached->get($key)) {
echo $memcached->get($key);
} else {
echo "Cache miss!";
}
Redis也是热门选项。和Memcached比,Redis支持更丰富的数据类型和持久化。如果你需要队列、计数器这些功能,Redis会更顺手。
安装同样分两步:
sudo apt update
sudo apt install redis-server php-redis
代码示例:
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$key = 'my_cache_key';
$data = 'my_cache_data';
// 设置缓存,有效期3600秒
$redis->set($key, $data, 3600);
// 获取缓存
if ($redis->exists($key)) {
echo $redis->get($key);
} else {
echo "Cache miss!";
}
最后提一个轻量级的选择:文件缓存。如果项目规模不大,或者不想引入额外的服务进程,直接用文件系统存数据也够用。它的实现最简洁,没有依赖,但性能上限也最低:
$cacheFile = '/tmp/my_cache_file';
// 写入缓存
file_put_contents($cacheFile, $data, LOCK_EX);
// 读取缓存
if (file_exists($cacheFile)) {
echo file_get_contents($cacheFile);
} else {
echo "Cache miss!";
}
从实践经验来看,选择哪种方案不能只看技术层面的好坏,更重要的是契合你的场景。大型应用,尤其是需要横向扩展的,OPcache加Redis或Memcached是成熟套路。小型项目或临时脚本,文件缓存成本最低,也完全够用。说到底,没有最好的缓存方案,只有最合适的。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8