首页主机资讯centos lamp如何使用缓存技术

centos lamp如何使用缓存技术

时间2025-11-26 13:01:03发布访客分类主机资讯浏览345
导读:CentOS LAMP 缓存技术落地指南 一、整体思路与分层 建议按“由近到远”的顺序启用缓存:先加速脚本执行,再缓存数据库查询结果,最后处理全页与静态资源。 分层与要点: PHP 层:启用 OPcache(字节码缓存),减少解释与编译...

CentOS LAMP 缓存技术落地指南

一、整体思路与分层

  • 建议按“由近到远”的顺序启用缓存:先加速脚本执行,再缓存数据库查询结果,最后处理全页与静态资源。
  • 分层与要点:
    • PHP 层:启用 OPcache(字节码缓存),减少解释与编译开销。
    • 对象缓存:使用 Memcached/Redis 缓存数据库查询结果或页面片段,显著降低数据库压力。
    • Web/应用层:Apache 启用 mod_cache/mod_expires 做全页或局部缓存;静态资源设置长期 Cache-Control/Expires
    • 数据库层:优化 MySQL/MariaDB(如 InnoDB Buffer Pool),减少慢查询与磁盘 IO。
    • 系统层:合理利用 Page Cache,并按需调整内核参数(如 vm.swappiness、vm.dirty_ratio)。

二、快速落地步骤

  • PHP 层启用 OPcache

    • 编辑 /etc/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
    • 重启 httpd:systemctl restart httpd
    • 验证:phpinfo() 中应能看到 OPcache 模块与配置生效。
  • 对象缓存 Memcached(适合通用 KV/会话/查询结果)

    • 安装与启动:
      • yum install -y memcached
      • systemctl enable --now memcached
      • 默认监听 11211 端口(可在 /etc/sysconfig/memcached 调整)
    • PHP 启用扩展(两种常见扩展名,二选一或并存):
      • yum install -y php-pecl-memcache 或 php-pecl-memcached
    • 将 PHP 会话存入 Memcached(编辑 /etc/php.ini):
      • session.save_handler = memcache
      • session.save_path = “tcp://127.0.0.1:11211
    • 可选:用 memadmin 工具管理/验证缓存数据(部署到站点目录后访问对应路径)。
  • 对象缓存 Redis(适合复杂结构/更高吞吐与持久化)

    • 安装与启动(示例为编译安装,也可用发行版仓库):
      • 下载并编译 Redis,make PREFIX=/usr/local/redis install
      • 复制配置文件并启动服务(建议配置为 systemd 服务)
    • PHP 安装扩展:
      • yum install -y php-pecl-redis
      • 重启 httpd
    • 连通性测试(/var/www/html/test.php):
      • $redis = new Redis(); $redis-> connect(‘127.0.0.1’, 6379); echo $redis-> ping();
    • 应用接入示例(以 Discuz 为例,修改配置文件指向 Redis 主机与端口):
      • $_config[‘memory’][‘redis’][‘server’] = ‘172.25.0.200’;
      • $_config[‘memory’][‘redis’][‘port’] = 6379;
    • 高可用建议:部署 Redis 主从复制,必要时增加 哨兵 实现故障切换。
  • Apache 层全页与静态资源缓存

    • 启用模块:a2enmod cache cache_disk expires
    • 示例(在 VirtualHost 或 .htaccess 中按需放置):
      • 全页缓存(示例策略,按业务调整):
        • CacheQuickHandler off
        • CacheLock on
        • CacheLockPath /tmp/mod_cache-lock
        • CacheLockMaxAge 5
        • CacheIgnoreHeaders Set-Cookie
        • CacheIgnoreNoLastMod On
        • CacheStoreNoStore On
        • CacheDefaultExpire 600
        • CacheMaxExpire 86400
        • CacheIgnoreQueryString On
      • 静态资源长缓存(示例):
        • ExpiresActive On
        • ExpiresByType image/jpg “access plus 1 month
        • ExpiresByType text/css “access plus 1 month
        • Header set Cache-Control “public, max-age=2592000
    • 注意:动态页面需结合 Cache-Control: private/no-cache 或在应用中设置 Vary/禁用缓存,避免用户隐私泄露与脏数据。

三、数据库层优化要点

  • 合理设置 InnoDB Buffer Pool(建议为物理内存的 50%–80%),减少磁盘 IO,提高查询命中率。
  • 适度使用查询缓存(query cache)于读多写少场景;对高并发写场景谨慎评估。
  • 规范索引、拆分大表、优化慢查询,配合应用侧缓存(Redis/Memcached)降低数据库压力。

四、验证与运维

  • 验证要点

    • OPcache:phpinfo() 中查看 opcache.enable 与命中率等指标。
    • Memcached:ss -lntp | grep 11211;用 telnet 127.0.0.1 11211 执行 set/get 测试;或用 memadmin 观察命中与条目。
    • Redis:redis-cli ping 返回 PONG;应用侧读取/写入键值验证;主从环境在主库写入、从库读取核对一致性。
    • Apache:curl -I 查看 Cache-Control/ExpiresX-Cache(若启用 mod_cache_disk)等响应头;浏览器开发者工具 Network 面板核对缓存命中与过期时间。
  • 运维与安全

    • Redis 设置访问密码(requirepass)、绑定内网地址或启用防火墙;生产环境建议 主从+哨兵 提高可用性。
    • Memcached 限制监听地址与并发连接数,避免暴露在公网。
    • 缓存失效策略:对“写后失效/主动删除”敏感的数据,在应用更新时同步清理相关缓存键,避免脏读。
    • 系统层监控内存与缓存:free -h、top、iostat;必要时调整 vm.swappiness、vm.dirty_ratio 等内核参数以平衡性能与稳定性。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos lamp如何使用缓存技术
本文地址: https://pptw.com/jishu/756611.html
centos定时器精度能到多少 centos定时器故障怎么排查

游客 回复需填写必要信息