PHP 5.5 默认包含 zend opcache,这基本上意味着几乎没有人会使用 APC。
但是用什么来代替 APC 的用户数据缓存部分(apc_store & apc_fetch & 类似)呢?
我真正喜欢使用 APC 用户数据缓存的一个用例是静态资产(javascript、css ..)的“版本”。每当我引用静态文件时,我都会将其内容的哈希值添加到网址中(例如
我可以想象使用 redis 或 memcache 来存储静态文件的哈希值,但通过网络或套接字询问另一个进程只是为了获取文件内容的哈希值似乎很愚蠢。 APC 用户数据缓存(位于共享内存中,访问它几乎与访问 php 变量一样快)似乎正是用于此类数据的正确选择。
所以问题是:在 php 5.5 中使用什么来缓存小数据而不是 APC?
从 PHP 5.5 开始,APC 用户数据存储单独打包为PECL AP铜 http://pecl.php.net/package/APCu.
- 源代码:http://pecl.php.net/package/APCu http://pecl.php.net/package/APCu
- MacOS 自制程序包是php55-apcu https://github.com/josegonzalez/homebrew-php/commits/master/Formula/php55-apcu.rb (
brew install php55-apcu
)
- Debian/ubuntu 称为php5-apcu http://packages.ubuntu.com/saucy/php5-apcu (
apt-get install php5-apcu
)
- Fedora/RedHat 称为php-pecl-apcu https://admin.fedoraproject.org/pkgdb/package/php-pecl-apcu/ (
yum install php-pecl-apcu
)
- Windows - 使用预编译APCu dll http://windows.php.net/downloads/pecl/releases/apcu/- 跟随下面的答案中提供了说明 https://stackoverflow.com/a/33716497/181664.
这允许您使用所有用户缓存功能 http://www.php.net/manual/en/function.apc-store.php, 例如apc_store() http://www.php.net/manual/en/function.apc-store.php。也将回归true
for extension_loaded('apc')
- 这意味着所有依赖于 APC 的库都将与 PHP 5.4 类似地工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)