PHP缓存大小参数主要包括OPcache的opcache.memory_consumption(建议128–256MB)、APCu的apc.shm_size(建议32–128MB)、Redis的maxmemory(如512mb)及Memcached的-m参数(如-m 256),并需配套设置opcache.max_accelerated_files和output_buffering等参数以保障缓存效率与稳定性。

PHP缓存大小参数主要涉及字节码缓存(OPcache)、用户数据缓存(APCu) 和外部缓存服务(Redis/Memcached) 三类。不同缓存类型对应不同的大小配置项,需根据用途和服务器资源合理设置。
OPcache内存大小设置
OPcache 缓存的是 PHP 脚本编译后的字节码,其核心大小参数是 `opcache.memory_consumption`,单位为 MB:• 默认值通常为 64MB,中小型项目建议设为 128MB,大型应用(如 Laravel、WordPress 多插件站)可调至 256MB 或更高(需确保服务器有足够共享内存)
• 同时要配好 opcache.max_accelerated_files:该值应略大于项目中 PHP 文件总数(例如 5000 个文件建议设为 6000),避免哈希冲突导致缓存失效
• opcache.interned_strings_buffer 控制驻留字符串内存,默认 8MB,中文或大量常量项目建议设为 16MB
APCu用户缓存大小设置
APCu 用于缓存变量、查询结果等用户数据,关键大小参数是 `apc.shm_size`:• 默认一般为 32M,建议根据业务数据量设定:
– 小型后台系统:32M~64M
– 高频读取配置/菜单的 CMS:96M~128M
• 注意:`apc.shm_size` 必须在 php.ini 中配置,不能用 `ini_set()` 动态修改
• 若启用了 CLI 模式缓存(如定时任务中使用 APCu),需额外开启 `apcu.enable_cli=1`
Redis/Memcached 实例内存限制
这类缓存运行在独立进程,大小由服务端配置决定,而非 PHP 扩展本身:• Redis:在 /etc/redis/redis.conf 中设置 maxmemory,例如:
maxmemory 512mb
搭配 maxmemory-policy allkeys-lru 防止写满崩溃
• Memcached:启动时通过 -m 参数指定,例如:
memcached -m 256(单位 MB)
• PHP 端无需设“大小”,只负责连接和读写;实际容量取决于服务端分配
输出缓冲区大小(非存储缓存,但影响性能)
虽然不属于传统“缓存”,但 `output_buffering` 会影响响应生成效率:• 在 php.ini 中设置:
output_buffering = 4096(单位字节,即 4KB)
设为 0 表示禁用,设为 On 使用默认值(通常 4KB)
• 过大可能导致首屏延迟,过小则频繁刷送;多数 Web 应用保持默认即可
• 代码中也可用 ob_start(null, 8192) 单独为某段逻辑设 8KB 缓冲



















