(Yac >= 1.0.0)
Yac::add — 存储一个值,但不覆盖已有条目
向缓存中存储一个值。与 Yac::set() 不同, 它不会覆盖仍然有效的已有条目;遇到这种情况时存储会被拒绝。
成功时返回 true,失败时返回 false。
当键已存在且未过期时,存储同样会被拒绝(返回 false)。
注意:
Yac 存储条目时不加锁。在高并发竞争下,存储可能会瞬时失败; 如果该值必须最终写入成功,请重试:
<?php while (!$yac->add("key", "value")) { // 瞬时失败时重试 } ?>
示例 #1 Yac::add() 示例
<?php
$yac = new Yac();
var_dump($yac->add("foo", "bar")); // bool(true)
var_dump($yac->add("foo", "baz")); // bool(false):"foo" 已存在
// ttl 以秒为单位;0(默认值)表示条目永不过期
$yac->add("short-lived", "value", 5);
sleep(6);
var_dump($yac->get("short-lived")); // bool(false):已过期
// 一次调用存储多个键值对,并指定 ttl
$yac->add(array("a" => 1, "b" => 2), 60);
?>