问题标签 [apcu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3272 浏览

php - APCu 不存储在 PHP 7 中

APCu 只会获取存储在当前页面加载中的值。

刷新两次:

输出以下内容:

因此它在当前页面加载时存储数据。之后就没有了...

我在 PHP 7.0.0 上使用默认配置的最新稳定版本 (5.1.2)。

我尝试过不同版本的 APCu 和 PHP 7。在 Google 上也找不到类似的东西......

这是我的 PHP apcu 配置: 损坏的 APCu 配置

0 投票
0 回答
269 浏览

php - apcu_cache_info() 的 API 何时更改,如何更改?

我们在许多不同的安装(工作站、开发和生产服务器)上使用APCu作为 PHP 的数据缓存。不幸的是,APCu API 似乎是一个移动的目标,而且几乎没有官方文档(我可以找到)。目前,我们得到了完全不同的返回值apcu_cache_info()......

在 APCu 4.0.1 中,条目如下所示:

使用 APCu 4.0.7,它看起来像这样:

根据GitHub 上的源代码,它现在看起来像这样:

过去我们看到过其他突然的 API 更改,例如何时apcu_sma_info()必须apcu_cache_info()使用字符串"user"作为第一个参数来调用 - 直到它们没有。我知道这些更改在某种程度上与保持或放弃与旧 APC 扩展的兼容性有关,但很难猜测如何与 APCu 交互。

这些更改是否记录在某个地方,并带有我们可以检查的版本号?在不久的将来是否会有更多的变化?除了看到我的应用程序中断之外,我如何获得有关它们的通知?

php.net上的文档对此无话可说,项目的CHANGELOG文件也没有。PHP 更改日志也没有提到这是向后不兼容的更改(可能是因为 APCu 默认情况下未与 PHP 捆绑)。

0 投票
1 回答
1144 浏览

php - APCu 配置 - gc_ttl = 0?

我正在努力在一组繁忙的服务器上优化 APCu 配置。上周我们遇到了 APC 的问题,在我们的 PHP 日志中有这些错误

apc_add(): GC 缓存条目 '....:' 在 gc-list 上持续了 3601 秒' 在第 55 行的 /.../index.php 中严重性为 2

我找到了这个相关的 SO 线程,这让我考虑设置我们的gc_ttl = 0. 当前值为gc_ttl = 3600.

我的猜测是我们在缓存中有过期的键,但没有被完全删除,因此可以通过apc_store调用重新分配。我不确定如何确定这个假设是否正确,有什么想法吗?设置gc_ttl = 0是否有助于释放插槽以进行重新分配?

我发现我们的内存使用图很有趣。

APCu 内存使用

它在饼图下方显示

免费:264.9 MB (66.2%)

然而,饼图的绿色部分表示只有 161.4 MBytes 可用。

我们当前的apcu配置

0 投票
1 回答
1049 浏览

php - 在 Windows7 上安装 APCU for PHP 5.5

我在尝试为 PHP5.5 安装 APCU 时遇到问题 我的配置是:Windows7 64-bit PHP 5.5 x86 safe-thread enabled XAMPP 3.2.1

我尝试了以下版本的 APCU(线程安全和非线程安全以及 64 和 86): 4.0.10 4.0.8 4.0.7

php.ini 的编辑如下:

并且 phpinfo 不显示任何这些版本的 APCU 扩展。

0 投票
0 回答
655 浏览

php - 未找到 APCu 符号:_zend_signal_globals

我试图通过 pecl 安装 APCu。安装很顺利。但是,PHP 无法加载 APCu。

这是错误消息:

PHP 警告:PHP 启动:无法加载动态库 '/usr/local/Cellar/php55/5.5.30/lib/php/extensions/no-debug-non-zts-20121212/apcu.so' - dlopen(/usr /local/Cellar/php55/5.5.30/lib/php/extensions/no-debug-non-zts-20121212/apcu.so, 9):找不到符号:_zend_signal_globals\n 引用自:/usr/local/Cellar /php55/5.5.30/lib/php/extensions/no-debug-non-zts-20121212/apcu.so\n 预期在:平面命名空间\n 在 /usr/local/Cellar/php55/5.5.30/lib /php/extensions/no-debug-non-zts-20121212/apcu.so 在第 0 行的未知中

php 配置:

用法:/usr/local/bin/php-config [OPTION] 选项:--prefix [/usr/local/Cellar/php55/5.5.30] --includes [-I/usr/local/Cellar/php55/5.5 .30/include/php -I/usr/local/Cellar/php55/5.5.30/include/php/main -I/usr/local/Cellar/php55/5.5.30/include/php/TSRM -I/usr /local/Cellar/php55/5.5.30/include/php/Zend -I/usr/local/Cellar/php55/5.5.30/include/php/ext -I/usr/local/Cellar/php55/5.5.30 /include/php/ext/date/lib] --ldflags [ -L/usr/local/Cellar/libxml2/2.9.2/lib -L/usr/local/opt/openssl/lib -L/usr/local/ opt/jpeg/lib -L/usr/local/opt/libpng/lib -L/usr/local/Cellar/freetype/2。6_1/lib -L/usr/local/opt/gettext/lib -L/usr/local/opt/unixodbc/lib] --libs [ -lcrypto -lssl -lcrypto -lz -lexslt -lresolv -ledit -lncurses -lldap -llber -liconv -liconv -lintl -lpng -lz -ljpeg -lcrypto -lssl -lcrypto -lcurl -lbz2 -lz -lcrypto -lssl -lcrypto -lm -lxml2 -lz -liconv -lm -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lcurl -lxml2 -lz -liconv -lm -lfreetype -lodbc -lodbc -lxml2 -lz -liconv -lm -lxml2 -lz -liconv -lm -lxml2 -lz -liconv -lm -lxml2 -lz -liconv -lm -lxml2 -lz -liconv -lm -lxml2 -lz -liconv -lm -lxml2 -lz -liconv -lm -lxml2 -lxslt ] --extension-dir [/usr/local/Cellar/php55/5.5.30/lib/php/ extensions/no-debug-non-zts-20121212] --include-dir [/usr/local/Cellar/php55/5.5.30/include/php] --man-dir [/usr/local/Cellar/php55/ 5.5.30/share/man] --php-binary [/usr/local/Cellar/php55/5.5.30/bin/php] --php-sapis [apache2handler cli fpm cgi] --configure-options [--prefix= /usr/local/Cellar/php55/5.5.30 --localstatedir=/usr/local/var --sysconfdir=/usr/local/etc/php/5.5 --with-config-file-path=/usr/local /etc/php/5.5 --with-config-file-scan-dir=/usr/local/etc/php/5.5/conf.d --mandir=/usr/local/Cellar/php55/5.5。30/share/man --enable-bcmath --enable-calendar --enable-dba --enable-exif --enable-ftp --enable-gd-native-ttf --enable-mbregex --enable-mbstring - -enable-shmop --enable-soap --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --enable-zip --with-freetype-dir=/usr/ local/opt/freetype --with-gd --with-gettext=/usr/local/opt/gettext --with-iconv-dir=/usr --with-icu-dir=/usr/local/opt/icu4c --with-jpeg-dir=/usr/local/opt/jpeg --with-kerberos=/usr --with-libedit --with-mhash --with-ndbm=/usr --with-pdo-odbc= unixODBC,/usr/local/opt/unixodbc --with-png-dir=/usr/local/opt/libpng --with-unixODBC=/usr/local/opt/unixodbc --with-xmlrpc --with-zlib =/usr --with-readline=/usr/local/opt/readline --without-gmp --without-snmp --with-libxml-dir=/usr/local/opt/libxml2 --with-apxs2=/ usr/sbin/apxs --libexecdir=/usr/local/Cellar/php55/5.5。30/libexec --with-bz2=/usr --disable-debug --with-openssl=/usr/local/opt/openssl --enable-fpm --with-fpm-user=_www --with-fpm- group=_www --with-curl --with-xsl=/usr --with-ldap --with-ldap-sasl=/usr --with-mysql-sock=/tmp/mysql.sock --with-mysqli =mysqlnd --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --disable-opcache --enable-pcntl --without-pear --enable-dtrace --enable-zend-signals] --version [ 5.5.30] --vernum [50530]袜子 --with-mysqli=mysqlnd --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --disable-opcache --enable-pcntl --without-pear --enable-dtrace --enable-zend-信号] --version [5.5.30] --vernum [50530]袜子 --with-mysqli=mysqlnd --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --disable-opcache --enable-pcntl --without-pear --enable-dtrace --enable-zend-信号] --version [5.5.30] --vernum [50530]

操作系统:OS X 10.11.3

0 投票
0 回答
154 浏览

php - 2000000 个标签的 php apcu 的最佳设置

在我的应用程序中,我想在php apcu中存储 2000000(两百万)个标签以提高性能。x……x 是键和值。$ar 大约是 2000k 键,大小约为 250MB。我想存储 1 天。

这是 store.php 并运行它。它没有错误。输出“ok”

它什么也得不到。请问为什么?我在 php.ini 中将内存限制设置为 700M 请提供最佳 apcu 设置。谢谢

0 投票
1 回答
1867 浏览

php - 找不到 PHP7 的 APCIterator 类

我正在运行一个带有 LAMP 设置的 Ubuntu 16.04 LTS VM,它安装了 PHP 7.0。当我运行我的代码时,我收到以下错误:Class 'APCIterator' not found.

我确保我已经安装并启用了 APCu:

有什么办法可以解决这个问题(不编辑 PHP 代码),还是应该切换回 Ubuntu 14 LTS 并使用 PHP 5?

0 投票
0 回答
111 浏览

php - PHP:APC / APCU 可以缓存 Curl 句柄并共享连接吗?

试图找到加速 REST 连接的方法,并且很好奇这是否可能,甚至是必要的:

APC / APCU 可以缓存 Curl 句柄并共享连接吗?

0 投票
1 回答
593 浏览

php - PHP apc/apcu 缓存不保留中间结果,而 shmop 做,为什么?

我遇到了 PHP 在本地存储中间结果的问题。

APC:</p>

APCu:</p>

我在 php 脚本的 php_cli 下使用 apc_store/apcu_store 存储,并在另一个 php 脚本上使用 apc_fetch/apcu_fetch 获取,发现$ret为空。

同时,与shmop

在这里我得到$ret: "bar"

不应该像APC/APCu缓存一样在本地缓存中间结果shmop吗?

0 投票
3 回答
7310 浏览

php - Symfony 3 / APCu + PHP7

我又遇到了 APCu 和 PHP7 的问题。这是我的会议。

网站工作正常,但是当我发送表单时,我总是收到此错误:

[2016-06-29 09:17:12] request.CRITICAL:未捕获的 PHP 异常 Symfony\Component\Debug\Exception\UndefinedFunctionException:“尝试从命名空间“Doctrine\Common\Cache”调用函数“apc_fetch”。” 在 ROUTE_TO_PROJECT/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ApcCache.php 第 41 行 {"exception":"[object] (Symfony\Component\Debug\Exception\UndefinedFunctionException(code: 0): 试图调用函数 \"apc_fetch\" 来自命名空间 \"Doctrine\Common\Cache\"。在 ROUTE_TO_PROJECT/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ApcCache.php:41)"} []

这是我的作曲家:

为什么 Symfony 调用 apc_fetch 而不是 apcu_fatch?