• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • apc_add()

    (PECL apc >= 3.0.13)

    缓存一个变量到数据存储

    说明

    apc_add(string $key, mixed $var[,int $ttl= 0]): bool
    apc_add(array $values[,mixed $unused= NULL[,int $ttl= 0]]): array

    仅仅在缓存变量不存在的情况下缓存变量到数据存储中

    Note:与PHP中其他的机制不同,使用apc_add()存储变量在不同的请求之间一直持久存在(直到从缓存系统中移除)

    参数

    $key

    存储缓存变量使用的名称$keys 是唯一的,所以试图使用apc_add()去添加一个名称已经存在的缓存,将不会覆盖现有的缓存的值,并且返回FALSE.(这个是apc_add()和apc_store()之间唯一的不同.)

    $var

    存储的变量

    $ttl

    生存时间;在缓存中存储$var$ttl秒,在$ttl秒过去后,存储的变量将会从缓存中擦除(在下一次请求时),如果没有设置$ttl(或者$ttl0),变量将一直存活到被手动移除为止,除此之外不在缓存中的可能原因是,缓存系统使用clear,或者restart等

    $values

    Names in key, variables in value.

    返回值

    Returns TRUE if something has effectively been added into the cache, FALSE otherwise. Second syntax returns array with error keys.

    范例

    Example #1 apc_add()例子

    <?php
    $bar = 'BAR';
    apc_add('foo', $bar);
    var_dump(apc_fetch('foo'));
    echo "\n";
    $bar = 'NEVER GETS SET';
    apc_add('foo', $bar);
    var_dump(apc_fetch('foo'));
    echo "\n";
    ?>
    

    以上例程会输出:

    string(3) "BAR"
    string(3) "BAR"
    

    参见

    In order to understand better how APC caching works you can do the following:
    1. Restart web server (Apache or Nginx)
    2. Create file "apc_fetch.php":
    <?php
    var_dump(apc_fetch(array(
      'CUR_DATE_5s_1',
      'CUR_DATE_5s_2',
      'CUR_DATE_5s_3',
      'CUR_DATE_0s_1',
      'CUR_DATE_0s_2',
      'CUR_DATE_0s_3',
    )));
    ?>
    3. Create file "apc_add.php":
    <?php
    $ttl = 5;
    $key = 'CUR_DATE_5s_1';
    $var = date('c');
    $result = apc_add($key, $var, $ttl);
    var_dump($result);
    echo "\n";
    $var = date('c');
    $result = apc_add($key, $var, $ttl);
    var_dump($result);
    echo "\n";
    $key = 'CUR_DATE_0s_1';
    $var = date('c');
    $result = apc_add($key, $var);
    var_dump($result);
    echo "\n";
    $values = array(
      'CUR_DATE_5s_2' => date('c'),
      'CUR_DATE_5s_3' => rand(),
    );
    $result = apc_add($values, null, $ttl);
    var_dump($result);
    echo "\n";
    $values = array(
      'CUR_DATE_0s_2' => date('c'),
      'CUR_DATE_0s_3' => rand(),
    );
    $result = apc_add($values, null);
    var_dump($result);
    ?>
    4. Run "apc_fetch.php" and "apc_add.php" several times in order to see the persistent result and how values change from one request to another.