PHP APCu

什么是PHP APCu

PHP APCu是php的一个缓存扩展,用户缓存

安装APCu扩展

使用pecl工具安装

pecl install apcu

源码安装
参考:https://blog.csdn.net/qq_18361349/article/details/112688449?spm=1001.2014.3001.5501
php.ini配置参考:https://www.php.net/manual/zh/apcu.configuration.php

相关函数

// APCu的数据存储中检索缓存的信息
apcu_cache_info();

// 检索APCu共享内存分配信息
apcu_sma_info();

// APCu key信息
apcu_key_info();

// 当前环境APCu是否可用
apcu_enabled();

// 设置一个缓存,没有失效时间。再次apcu_add()同一个key,值不会覆盖
apcu_add();

// 删除指定key
apcu_delete();

// 获取指定key缓存
apcu_fetch();

// 设置一个缓存,带有失效时间。失效后还会占用内存空间,需使用apcu_delete()才可以彻底删除。
apcu_store();

// 更新一个key的值
apcu_cas();

// 自增
apcu_inc();

// 自减
apcu_dec();

// 判断key是否存在
apcu_exists();

// 以原子方式获取或生成缓存
apcu_entry();

// 清除全部缓存
apcu_clear_cache();

实例

<?php
// 添加一个缓存,没有失效时间。再次apcu_add()同一个key,值不会覆盖
apcu_add("bool", false);
apcu_add("string", "string");
apcu_add("int", 999);
apcu_add("float", 99.99);
apcu_add("array", [1, 2, 3, 4, 5]);

// APCu的数据存储中检索缓存的信息
var_dump(apcu_cache_info());

// 检索APCu共享内存分配信息
var_dump(apcu_sma_info());

// key信息
var_dump(apcu_key_info("float"));
var_dump(apcu_key_info("string_store"));

// 当前环境apcu是否可用
var_dump(apcu_enabled());

// 删除指定key
var_dump(apcu_delete("bool"));

// 设置一个缓存,失效时间单位为秒。时间可选,默认永不失效(非重启)
var_dump(apcu_store("bool_store", FALSE, 5));
var_dump(apcu_store("string_store", "string", 10));
var_dump(apcu_store("int_store", 999, 15));
var_dump(apcu_store("float_store", 99.99, 20));
var_dump(apcu_store("array_store", [1, 2, 3, 4, 5], 25));

// 更新一个key的值
$old = 1;
$new = 2;
apcu_add("cas", $old);
var_dump(apcu_cas("cas", $old, $new));

// 自增
apcu_add("inc", 1);
$success = false;
var_dump(apcu_inc("inc", 10, $success));
apcu_fetch("inc");
var_dump($success);

// 自减,可以为负数
apcu_add("dec", 100);
$success = false;
var_dump(apcu_dec("dec", 10, $success));
apcu_fetch("dec");
var_dump($success);

// 判断key是否存在,当参数为数组时返回数组,数组key为APCu缓存的key,值为bool类型true或false
apcu_add("int", 1);
apcu_add("string", "string");
var_dump(apcu_exists("int"));
var_dump(apcu_exists(["int", "string"]));

// 以原子方式获取或生成缓存
$entry = apcu_entry("entry", function ($key) {
    return ["entry" => "this is entry"];
}, 100);
var_dump($entry);
$success = false;
var_dump(apcu_fetch("entry", $success));
var_dump($success);

// 清除全部缓存
var_dump(apcu_clear_cache());
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值