PHP APCu是php的一个缓存扩展,用户缓存
使用pecl工具安装 pecl install apcu
/ 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());