apcu 一个完全类似apc的php扩展,保留了数据缓存功能,去掉了opcode缓存。 php api接口完全和apc相同,如果你的代码使用了apc数据缓存,在改到apcu扩展时,代码无需进行任何修改。 apcu安装 可以在这里选择你需要的apcu版本 https://pecl.php.net/package/APCu 我的php版本是5.5.6,下载了4.0.11版本的apcu。 安装好后,在php.ini中增加类似下面的配置,便可使用apcu了 [apc] extension = apcu.so apc.enabled= on apc.shm_size= 64M apc.enable_cli
具体配置可查看http://php.net/manual/zh/apcu.configuration.php 函数: apcu_add -数据存储中缓存的新变 apcu_cache_info -检索缓存的信息从 APCu的数据存储 获取数据存储列表(不会返回value),只有定义值的信息 apcu_cas更新旧值和新值 apcu_clear_cache -清除缓存的 apcu_dec -减少存储的值(必须数值型 ) apcu_delete -删除存储变量从缓存 apcu_entry -自动读取或生成一个缓存条目 apcu_exists -检查项目存在 apcu_fetch从缓存取存储变量 apcu_inc增加存储的值 (必须数值型) apcu_sma_info -检索高招共享内存分配信息 apcu_store -数据存储区中的缓存变量 具体说明可查看:http://php.net/manual/zh/book.apcu.php 然后注释掉apcu_store $key='tioncico'; $value='仙士可'; //var_dump(apcu_store($key , $value)); var_dump(apcu_fetch
特性 共享内存缓存:APCu使用共享内存来存储缓存数据,这意味着多个PHP进程可以访问相同的缓存数据,从而提高性能。 用户缓存:与APC的系统缓存不同,APCu专注于用户缓存。 易于使用:APCu提供了一组简单的函数来存储和检索缓存数据。例如:apcu_store()、apcu_fetch()、apcu_delete()等。 安装 下载源码包并解压 wget https://pecl.php.net/get/apcu-5.1.23.tgz tar -zxvf apcu-5.1.23.tgz 编译 cd apcu-5.1.23 php -i |grep apcu apcu OLDPWD => /home/www/build/apcu-5.1.23/build PWD => /home/www/build/apcu-5.1.23 $i; apcu_add($key, $i); apcu_fetch($key); } echo microtime(true) - $start .
这一套扩展就是 APCu 扩展。 APCu 扩展 APCu 扩展是 APC 扩展的升级,APC 扩展已经不维护了。这两套扩展其实都是基于 opcode caching 。 apcu_add — 创建一个新的缓存 apcu_cache_info — 查看 APCu 的全部缓存信息 apcu_cas — 更新一个缓存的值为新值 apcu_clear_cache — 清除全部的缓存 apcu_dec — 自减缓存值 apcu_delete — 删除一个缓存的内容 apcu_enabled — 当前环境下是否启用 APCu 缓存 apcu_entry — 原子地生成一个缓存实体 apcu_exists — 检查缓存是否存在 apcu_fetch — 查询缓存 apcu_inc — 自增缓存值 apcu_sma_info — 查询缓存的共享内存信息 apcu_store — 保存一个缓存 使用演示 apcu_add var_dump(apcu_cache_info()); 最后,如果我们想查看当前系统中的所有 APCu 缓存信息的时候,直接用这个 apcu_cache_info() 函数即可。
APCu仅包含用户变量缓存。 后来发现,5.4下很多人用了这个http://windows.php.net/downloads/pecl/releases/apcu/4.0.7/ ,据说是官方新的推荐做法,不过经确认仅仅只有user opcache.max_accelerated_files = 4000 opcache.revalidate_freq = 60 opcache.fast_shutdown = 1 opcache.enable_cli = 1 APCu
HTTP-API服务、websocket服务三大部分,其中配置管理主要是兼容客户端生成的配置数据进行导入导出转换加载,底层使用MySQL进行储存,多服务间使用Redis进行一级缓存,服务进程间使用了基于APCu 由于APCu的特性所以储存的数据也是支持储存对象数据的; webman-shared-cache为何使用锁? APCu(Alternative PHP Cache User Cache)是一个开放源代码的PHP缓存扩展,它提供了一种在PHP应用程序中存储和检索数据的快速方法。 之前我有和社区的同学们聊过,他们不是很理解为什么我在实现插件的时候自己使用了锁,这是因为APCu本身的自行实现了对它自身函数的原子性操作,但我们使用它的时候是在多进程的环境下,每一个进程内存在多次APCu function() { // do something } Cache::Atomic('test', function () use ($fuc) { // do anything }) APCu
扩展 下来通过安装apcu扩展来演示如何通过PIE 安装扩展 安装包仓库地址:https://packagist.org/packages/apcu/apcu sudo /usr/local/php-8.2.14 /bin/php pie.phar install --with-php-config=/usr/local/php-8.2.14/bin/php-config apcu/apcu You are running /apcu:v5.1.24 which provides ext-apcu phpize complete. 20220829/apcu.so You must now add "extension=apcu" to your php.ini 注意点 运行 PIE 需要 PHP 8.1 或更高版本,我这里使用非默认的 apcu apcu APCu Support => Disabled Version => 5.1.24 APCu Debugging => Disabled MMAP Support => Enabled
packageist 扩展列表 知道扩展名称后,就可以使用下面的命令进行安装: pie install <vendor>/<package> # 举个例子 pie install apcu/apcu /apcu:v5.1.24 which provides ext-apcu Extension name: apcu Extension type: php-ext (PhpModule) Composer package name: apcu/apcu Version: v5.1.24 Download URL: https://api.github.com/repos/krakjoe/apcu/zipball (Disable Valgrind-based memory checks) --enable-apcu (Enable APCu support) --enable-apcu-clear-signal (Enable SIGUSR1 clearing handler) --enable-apcu-debug (Enable APCu debugging) --enable-apcu-spinlocks
支持apcu、redis、memory驱动。 安装 composer require webman/rate-limiter 使用 <? php return [ 'enable' => true, 'driver' => 'auto', // auto, apcu, memory, redis 'stores' / 这些ip的请求不做频率限制 'ip_whitelist' => [ //'127.0.0.1', ], ]; enable:是否开启限流 driver:auto,apcu apcu 安装扩展:当driver使用apcu时,需要安装apcu扩展,并且php.ini中设置 apc.enabled=1 apc.enable_cli=1 如果不知道php.ini位置,可以通过命令 redis 依赖:需要安装redis扩展,并安装Redis组件,安装命令 composer require -W illuminate/redis illuminate/events 介绍:性能低于apcu
PHP安装支持的扩展 www@ShaoBoWan:~$ php -m [PHP Modules] amqp apcu bcmath calendar Core ctype curl date dba dom c), by Zend Technologies 支持的扩展 系统 扩展 Linux Core, date, libxml, openssl, pcre, sqlite3, zlib, amqp, apcu xmlwriter, xsl, zip, memcache, Zend OPcache MacOS Core, date, libxml, openssl, pcre, sqlite3, zlib, amqp, apcu sysvshm, tokenizer, xlswriter, xml, xmlreader, xmlwriter, xsl, zip, Zend OPcache Windows Core, amqp, apcu
classmap 中找不到目标类时,不会再去文件系统中查找(即隐含的认为 classmap 中就是所有合法的类,不会有其他的类了,除非法调用) 执行命令 composer dump-autoload --apcu 原理: 使用这个策略需要安装 apcu 扩展。 apcu 可以理解为一块内存,并且可以在多进程中共享。
Strict-Transport-Security "max-age=31536000; includeSubDomains" always; 第五条、内存缓存配置 这条根据自身需要选择:Memcache、APCu 我这里直接APCu缓存,进入网站目录config/config.php最后加入'memcache.local' => '\OC\Memcache\APCu',即可; 需要注意的是记得选择对应PHP版本安装 APCu扩展; 第六条、PHP的组件OPcache没有正确配置, opcache.enable=1 opcache.enable_cli=1 opcache.interned_strings_buffer
Strict-Transport-Security "max-age=31536000; includeSubDomains" always; 第五条、内存缓存配置 这条根据自身需要选择:Memcache、APCu 我这里直接APCu缓存,进入网站目录config/config.php最后加入'memcache.local' => '\OC\Memcache\APCu',即可; 需要注意的是记得选择对应PHP版本安装 APCu扩展; 第六条、PHP的组件OPcache没有正确配置, opcache.enable=1 opcache.enable_cli=1 opcache.interned_strings_buffer
tidy php7.0-xmlrpc php7.0-xsl php7.0-mbstring php-gettext 然后重启apache: sudo systemctl restart apache2 安装APCu APCu是一个缓存扩展,可以缓存并优化PHP中间代码,强烈建议安装。 sudo apt -y install php-apcu 然后重启apache: sudo systemctl restart apache2 安装phpmyadmin 上面的工作全部完成之后,就可以安装
The default is On. igbinary.compact_strings=On ; If uncommented, use igbinary as the serializer of APCu ; (APCu 5.1.10 or newer is strongly recommended) apc.serializer=igbinary 1 2 3 4 5 6 7 8 9 10 11 12
的健康检查一堆信息,所以使用Dockerfile来基于官方镜像构建一个专用的镜像,PHP需要的扩展包括: gd(png/jpeg/gif/webp/avif) imagick opcache(考虑性能) apcu && pecl install https://pecl.php.net/get/imagick-3.7.0.tgz https://pecl.php.net/get/redis-6.0.2.tgz apcu docker-php-ext-enable zip gd pdo_mysql mysqli opcache exif intl gmp bcmath pcntl sysvsem imagick redis apcu
缓存推荐Redisapt install redis修改config配置文件:vim /var/www/nextcloud/config/config.php在最后 ) 前加入:#开启缓存,分类型同时使用APCU memcache.local' => '\\OC\\Memcache\\APCu','filelocking.enabled' => true,'memcache.locking' => '\OC\Memcache 运行出错解决出错类型为在nextcloud设置-概览中看到:系统计划任务超过X小时未运行,请查看....日志错误:OC\HintException: 0: Memcache \OC\Memcache\APCu not available for local cache解决方法:修改/etc/php/8.1/mods-available/apcu.inivim /etc/php/8.1/mods-available /apcu.ini添加一行:apc.enable_cli=1保存退出,等5分钟再看看。
tidy php7.0-xmlrpc php7.0-xsl php7.0-mbstring php-gettext 然后重启apache: sudo systemctl restart apache2 安装APCu APCu是一个缓存扩展,可以缓存并优化PHP中间代码,强烈建议安装。 sudo apt -y install php-apcu 然后重启apache: sudo systemctl restart apache2 安装phpmyadmin 上面的工作全部完成之后,就可以安装
/addons.sh {install|uninstall} {eaccelerator|xcache|memcached|opcache|redis|apcu|imagemagick|ioncube} 参数: apcu 安装apcu php扩展,支持php7,可访问 http://yourIP/apc.php 进行管理。 请勿安装多个缓存类扩展模块,多个可能导致网站出现问题 ! phpinfo.php PHP探针:http://yourIP/p.php Xcache管理界面:http://yourIP/xcache/ Zend Opcache管理界面:http://yourIP/ocp.php apcu
# apc 包含 opcode 缓存和 KV 数据缓存 # PHP 5.5.0 及后续版本中已经绑定了 OPcache 扩展,所以不需要安装 apc # apcu 只包含 KV 数据缓存 # https ://pecl.php.net/package/APCu wget https://pecl.php.net/get/apcu-4.0.11.tgz tar zxvf apcu-4.0.11.tgz cd apcu-4.0.11 /usr/local/webserver/php/bin/phpize . ] extension = "apcu.so" apc.enabled = on apc.shm_size = 128M ; apc.enable_cli = on [memcached] extension /li>