我们也有自带的缓存系统:PHP的APCu扩展

2022-12-09 0 914

我们也有自带的缓存系统:PHP的APCu扩展

APCu 扩充

APCu 扩充是 APC 扩充的升级换代,APC 扩充早已不保护了。这三套扩充只不过都是如前所述 opcode caching 。也是 PHP 另一方面的 opcode 来同时实现的内存潜能。

APCu 的加装就和通常的 PHP 扩充那样,比较简单,最主要的是那个扩充还十分的小。无论浏览却是加装都是秒级能顺利完成的。因此说能十分方便快捷的应用于较大型的工程项目,因此是 PHP 原生植物全力支持的,不须要附加的路由器等等的实用性。

方式表明

内存控制系统通常单厢有的是减少、删掉、查阅、自增等机能都在 APCu 扩充相关联的同时实现。

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 — 查阅内存的K47A重要信息apcu_store — 留存两个内存

采用模拟

apcu_add(“int”, 1);apcu_add(“string”, “Im String”);apcu_add(“arr”, [1,2,3]);class A{ private $apc = 1; function test(){ echo “s”; }}apcu_add(“obj”, new A);var_dump(apcu_fetch(“int”));var_dump(apcu_fetch(“string”));var_dump(apcu_fetch(“arr”));var_dump(apcu_fetch(“obj”));

正常的采用都是比较简单的,他们添加各种类型的数据都能正常存入内存。不过须要注意的是,他们能直接留存对象进入 APCu 内存中,不须要将它序列化或者JSON成字符串,控制系统会自动帮他们序列化。

apcu_add(string $key , mixed $var [, int KaTeX parse error: Expected EOF, got 方 at position 12: ttl = 0 ]) 方式是通常的添加两个内存,ttl 能设置过期时间,也是以秒为单位,如果不设置是长期有效的。注意,APCu 的内存时限在一次 CLI 效,再调用一次 CLI 取不到上次 CLI 中设置的内存文本。而在 PHP-FPM 中,重启 PHP-FPM 或 FastCGI 之后内存会失效。

接下来他们重点测试一下几个不太常见的方式。

apcu_cas(“int”, 1, 2);var_dump(apcu_fetch(“int”));// Warning apcu_cas() expects parameter 2 to be intapcu_cas(“string”, “Im String”, “Im New String”);

apcu_cas(string $key , int $old , int $new) 是将两个 $old 值修改为 $new 值,它只能修改数字类型的文本,如果是字符串的修改会报错。那个函数有什么优势呢?它最大的优势是氢原子性的,也是不受高并发的影响。与等等似的是 apcu_store(string $key , mixed $var [, int $ttl = 0 ]) 方式,不过那个方式只是简单的修改两个内存的文本,如果那个内存的键不存有的话,就新建两个,它不受类型的限制,当然也不具有氢原子性。

apcu_entry(“entry”, function($key){ return “This is ” . $key;});var_dump(apcu_fetch(“entry”));

apcu_entry(string $key , callable $generator [, int $ttl = 0 ]) 那个函数的作用是如果 $key 那个内存不存有,则执行 $generator 那个匿名函数,并将 $key 做为键值传递进去,然后聚合也是 return 两个文本做为那个内存的值。

var_dump(apcu_cache_info());

最后,如果他们想查阅现阶段控制系统中的所有 APCu 内存重要信息的时候,直接用那个 apcu_cache_info() 函数即可。

总结

当内存中的数据十分多时,它还提供了两个 APCUIterator 迭代器方便快捷他们进行内存重要信息的循环查阅及相关统计。总之,这一套控制系统是十分方便快捷的一套较大型的内存控制系统,在日常开发中完全能尝试用到一些小机能上。

举报/反馈

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务