Ubuntu环境下如何使用缓存插件
导读:Ubuntu环境下使用缓存插件的实用指南 一 选择缓存类型与适用场景 OPcache:PHP字节码缓存,减少脚本编译开销,适用于所有PHP应用,建议默认开启。 APCu:用户态数据缓存(键值),适合缓存计算结果、配置、片段等。 Redis...
Ubuntu环境下使用缓存插件的实用指南
一 选择缓存类型与适用场景
- OPcache:PHP字节码缓存,减少脚本编译开销,适用于所有PHP应用,建议默认开启。
- APCu:用户态数据缓存(键值),适合缓存计算结果、配置、片段等。
- Redis:高性能键值存储,支持持久化、丰富数据结构,常作对象缓存与会话存储后端。
- Memcached:分布式内存对象缓存,简单高效,适合高并发读多写少场景。
- Varnish / Nginx缓存:HTTP层整页缓存,适合匿名流量、静态资源与可缓存API。
- Apache模块缓存:如mod_expires(资源客户端缓存)、mod_file_cache(文件句柄/内容缓存),优化浏览器与静态资源命中。
- 磁盘/SSD层缓存:如bcache/flashcache,用SSD为HDD加速,适合I/O瓶颈型工作负载。
以上方案可按“代码层→对象层→边缘层→存储层”组合使用,以兼顾性能与一致性。
二 安装与启用步骤
-
PHP字节码与用户缓存
- 安装:sudo apt update & & sudo apt install php-opcache php-apcu
- 启用:编辑对应PHP版本的ini(如:/etc/php/8.1/apache2/php.ini 或 /etc/php/8.1/fpm/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
opcache.fast_shutdown=1
[apcu]
apcu.enable=1
apcu.shm_size=32M
apcu.ttl=7200
apcu.enable_cli=0(生产CLI建议关闭,避免污染缓存) - 重启服务:sudo systemctl restart apache2 或 php8.1-fpm
-
Redis与Memcached
- 安装:sudo apt install redis-server php-redis;或 sudo apt install memcached php-memcached
- 启用:在php.ini加入 extension=redis.so 或 extension=memcached.so(多数发行版包已自动启用)
- 验证服务:sudo systemctl status redis-server / memcached
- 基本连通性测试(PHP):
- Redis:$redis = new Redis(); $redis-> connect(‘127.0.0.1’, 6379); $redis-> set(‘k’,‘v’,3600);
- Memcached:$m = new Memcached(); $m-> addServer(‘127.0.0.1’, 11211); $m-> set(‘k’,‘v’,3600);
- 注意扩展选择:PHP 7+ 推荐使用带“d”的 memcached 扩展;老旧的 memcache 扩展不适用于PHP 7。
-
边缘层与Web服务器缓存
- Varnish:sudo apt install varnish;编辑 /etc/varnish/default.vcl 设置后端(如 .host=127.0.0.1; .port=80; ),按需配置缓存策略与Bypass Cookie,然后 sudo systemctl start varnish
- Nginx:在 http/server/location 中配置 proxy_cache_path 与 proxy_cache,示例:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m;
location / { proxy_pass http://127.0.0.1:8080; proxy_cache my_cache; proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m; } - Apache模块:启用 mod_expires(设置 Cache-Control/Expires)与 mod_file_cache(缓存静态文件句柄/内容),然后 sudo systemctl restart apache2。
三 验证与运维要点
- 验证是否生效
- PHP层:创建 phpinfo.php(),查看 OPcache/APCu/Redis/Memcached 模块与配置;CLI与FPM可能使用不同php.ini,需分别检查。
- 数据层:运行简单脚本验证 set/get 命中;Memcached可用 telnet localhost 11211 执行 stats items/flush_all 辅助排查。
- HTTP层:curl -I 检查 Cache-Control/Expires 与 X-Cache/Varnish 等头。
- 常见问题与建议
- 多版本PHP并存时,确保扩展安装到正确的版本目录(如 /etc/php/8.1/ 与 /etc/php/8.2/),并分别重启对应服务。
- 会话存储:如需将会话存入Redis/Memcached,在php.ini设置 session.save_handler=redis/memcached 与 session.save_path(如 tcp://127.0.0.1:6379 或 127.0.0.1:11211)。
- 安全:Redis默认无鉴权,生产环境请启用 requirepass 与绑定内网IP;Memcached建议仅监听 127.0.0.1 或内网。
- 监控与容量:关注命中率、内存占用与驱逐(evictions),Redis可用 INFO/慢查询日志,Memcached用 stats;必要时调大内存或优化TTL/键设计。
四 组合方案与示例配置
- 通用LAMP/LEMP加速
- 开启 OPcache + APCu(代码与用户缓存),对象缓存选 Redis(或Memcached),边缘层按场景叠加 Varnish/Nginx缓存;静态资源由 Apache mod_expires 或 Nginx expires 控制浏览器缓存。
- CMS与框架
- WordPress:可使用 Redis Object Cache 插件(需已安装php-redis);多站点建议设置 WP_CACHE_KEY_SALT 隔离缓存命名空间。
- Laravel/Symfony:在 .env 或框架配置中设置缓存驱动为 redis,并配置连接参数(host、port、database、password)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu环境下如何使用缓存插件
本文地址: https://pptw.com/jishu/761701.html
