如何清除 APCu 中的用户缓存?

Posted

技术标签:

【中文标题】如何清除 APCu 中的用户缓存?【英文标题】:How to clear user cache in APCu? 【发布时间】:2014-10-23 04:40:37 【问题描述】:

我已尝试使用此 php 代码清除用户缓存并从浏览器访问它:

<?php

apc_clear_cache();
apc_clear_cache('user');
apc_clear_cache('opcode');

echo json_encode(array(
    'success' => true,
));

但它不起作用。 (我正在使用这些工具来查看它是否有效https://rtcamp.com/tutorials/php/zend-opcache/)

此外,当用户缓存已满时,它不会从 0 重新启动。APCu 只是停止工作。

我尝试设置apc.user_ttl=0,但 APCu 无法识别它。

我的设置是:

extension=apcu.so
apc.enabled=1
apc.shm_size=10240M
apc.ttl=7200
apc.enable_cli=1
apc.gc_ttl=3600
apc.entries_hint=4096
apc.slam_defense=0
apc.enable_cli = 1
apc.user_ttl=0
apc.serializer=igbinary

【问题讨论】:

【参考方案1】:
<?php

if (extension_loaded('apc')) 
    echo "APC-User cache: " . apc_clear_cache('user') . "\n";
    echo "APC-System cache: " . apc_clear_cache() . "\n";


if (extension_loaded('apcu')) 
    echo "APCu cache: " . apcu_clear_cache() . "\n";


if (function_exists('opcache_reset')) 
    // Clear it twice to avoid some internal issues...
    opcache_reset();
    opcache_reset();

【讨论】:

【参考方案2】:

你用的工具是Opcache的,它不知道APCu。

需要查看APCu状态的脚本是:

PHP 7:https://github.com/krakjoe/apcu/blob/master/apc.php PHP 5:https://github.com/krakjoe/apcu/blob/PHP5/apc.php

如果您认为自己发现了错误,请在 github 上报告。

【讨论】:

链接无效,不值得发代码应该直接放这里

以上是关于如何清除 APCu 中的用户缓存?的主要内容,如果未能解决你的问题,请参考以下文章

什么是 PHP 中的用户级缓存 APCu 扩展?

php 缓存之 APC 和apcu

php 带密钥和ttl的APCu缓存

缓存后如何清除浏览器中的缓存? [复制]

如何检索用户或管理员图像?如何清除 CDA 缓存?

如何在 Flutter Firebase 中清除以前的用户缓存数据?