没有命名空间的类 yii yii\base yii\behaviors yii\caching yii\captcha yii\console yii\console\controllers yii\console\widgets yii\data yii\db yii\db\conditions yii\db\cubrid yii\db\cubrid\conditions yii\db\mssql yii\db\mssql\conditions yii\db\mysql yii\db\oci yii\db\oci\conditions yii\db\pgsql yii\db\sqlite yii\db\sqlite\conditions yii\di yii\filters yii\filters\auth yii\grid yii\helpers yii\i18n yii\log yii\mail yii\mutex yii\rbac yii\rest yii\test yii\validators yii\web yii\widgets

Abstract Class yii\caching\Cache

继承yii\caching\Cache » yii\base\Component » yii\base\BaseObject
实现yii\base\Configurable, yii\caching\CacheInterface
子类yii\caching\ApcCache, yii\caching\ArrayCache, yii\caching\DbCache, yii\caching\DummyCache, yii\caching\FileCache, yii\caching\MemCache, yii\caching\WinCache, yii\caching\XCache, yii\caching\ZendDataCache
可用版本自2.0
源码 https://github.com/yiichina/yii2/blob/api/framework/caching/Cache.php

Cache 是所有缓存类的基类,这些缓存类支持不同的缓存驱动。

数据可以通过调用 set() 方法存入缓存中,而后(在同一个请求或不同的请求)可以调用 get() 方法再次获得这个数据。在这两个操作中, 需要一个指明缓存数据的键。调用 set() 方法时还可以传递过期时间和 dependency 缓存依赖。如果在调用 get() 方法时缓存时间过期或者缓存依赖发生变化, 那么缓存不会返回数据。

典型的缓存使用模式就像下面这样:

$key = 'demo';
$data = $cache->get($key);
if ($data === false) {
    // ...generate $data here...
    $cache->set($key, $data, $duration, $dependency);
}

因为 Cache 实现了 ArrayAccess 接口,可以像数组那样使用它。比如,

$cache['foo'] = 'some data';
echo $cache['foo'];

具体的驱动类应该实现如下的方法来做实际的缓存操作:

在 Cache 上更多的详情和详细的使用信息,请参考 guide article on caching

公共属性

隐藏继承的属性

属性类型描述被定义在
$behaviors yii\base\Behavior[] List of behaviors attached to this component yii\base\Component
$defaultDuration integer 以秒为单位的默认的缓存持续时间。默认是 0,意味着永不过期。 在使用 set() 时并且没有明确传递时间参数时才会使用这个属性。 yii\caching\Cache
$keyPrefix string 每个缓存键的一个字符串前缀,据此可以保证在整个缓存系统层面上它都是全局唯一的。 如果出现相同的缓存驱动在多个不同的应用环境下使用,建议你为每个应用环境里的这个缓存系统 设置一个唯一的缓存键前缀。 为保证系统的共用性,你应该只使用由字母和数字组成的字符串。 yii\caching\Cache
$serializer null|array|false 用来序列化和反序列化缓存数据的函数。默认是 null,这意味着 默认使用 PHP 的 serialize()unserialize() 两个函数。如果你想使用更高效的序列化功能 (比如 [igbinary](http://pecl. yii\caching\Cache

公共方法

隐藏继承的方法

方法描述被定义在
__call() Calls the named method which is not a class method. yii\base\Component
__clone() This method is called after the object is created by cloning an existing one. yii\base\Component
__construct() Constructor. yii\base\BaseObject
__get() Returns the value of a component property. yii\base\Component
__isset() Checks if a property is set, i.e. defined and not null. yii\base\Component
__set() Sets the value of a component property. yii\base\Component
__unset() Sets a component property to be null. yii\base\Component
add() 如果对应缓存键不存在,那么把由它指明的缓存数据存入缓存中, 如果缓存键存在,那么什么也不会做。 yii\caching\Cache
attachBehavior() Attaches a behavior to this component. yii\base\Component
attachBehaviors() Attaches a list of behaviors to the component. yii\base\Component
behaviors() Returns a list of behaviors that this component should behave as. yii\base\Component
buildKey() 根据给定的键构建标准的缓存键。 yii\caching\Cache
canGetProperty() Returns a value indicating whether a property can be read. yii\base\Component
canSetProperty() Returns a value indicating whether a property can be set. yii\base\Component
className() Returns the fully qualified name of this class. yii\base\BaseObject
delete() 根据指定的键从缓存中删除数据值。 yii\caching\Cache
detachBehavior() Detaches a behavior from the component. yii\base\Component
detachBehaviors() Detaches all behaviors from the component. yii\base\Component
ensureBehaviors() Makes sure that the behaviors declared in behaviors() are attached to this component. yii\base\Component
exists() 检测指定的键是否存在缓存中。 如果缓存数据量大的话,这比从缓存中直接获取值稍快些。 如果当前环境的缓存系统不支持该特性,该方法将会尝试模拟实现该特性, 但是相比直接从缓存中获取数据在性能上没有什么提高。 注意,缓存数据如果有关联的依赖存在,并且确实发生了变化, 但是该方法不会检测缓存依赖的变化情况。所以有可能调用 get() 方法返回 false, 而调用该方法返回 true。 yii\caching\Cache
flush() 从缓存中删除所有的值。 如果缓存系统在多个应用中共享的话,请谨慎执行该操作。 yii\caching\Cache
get() 根据指定的键从缓存中获取数据。 yii\caching\Cache
getBehavior() Returns the named behavior object. yii\base\Component
getBehaviors() Returns all behaviors attached to this component. yii\base\Component
getOrSet() 联合了 set()get() 两个方法的大方法,可以根据 $key 获取值, 或者在 $key 对应的缓存数据不存在的情况下,存入 $callable 执行后的结果作为缓存数据。 yii\caching\Cache
hasEventHandlers() Returns a value indicating whether there is any handler attached to the named event. yii\base\Component
hasMethod() Returns a value indicating whether a method is defined. yii\base\Component
hasProperty() Returns a value indicating whether a property is defined for this component. yii\base\Component
init() Initializes the object. yii\base\BaseObject
madd() 存入多个数据到缓存中。每个数据项都包含缓存键和对应的缓存值。 如果缓存中已经存在了对应的键,那么这个存在的缓存值和过期时间将会继续保留。 yii\caching\Cache
mget() 根据多个缓存的键一次从缓存中获取多个对应的缓存数据。 一些缓存驱动(比如 memcache,apc)允许一次性获取多个缓存数据,这无疑会提高性能。 如果当前环境的缓存系统不支持该特性的话, 该方法也会尝试模拟实现。 yii\caching\Cache
mset() 存入多个数据到缓存中。每个数据项都包含缓存键和对应的缓存值。 如果相同的键已经存在缓存中,那么之前的缓存数据和过期时间, 将会被新的缓存数据和缓存时间分别替换。 yii\caching\Cache
multiAdd() 存入多个数据到缓存中。每个数据项都包含缓存键和对应的缓存值。 如果缓存中已经存在了对应的键,那么这个存在的缓存值和过期时间将会继续保留。 yii\caching\Cache
multiGet() 根据多个缓存的键一次从缓存中获取多个对应的缓存数据。 一些缓存驱动(比如 memcache,apc)允许一次性获取多个缓存数据,这无疑会提高性能。 如果当前环境的缓存系统不支持该特性的话, 该方法也会尝试模拟实现。 yii\caching\Cache
multiSet() 存入多个数据到缓存中。每个数据项都包含缓存键和对应的缓存值。 如果相同的键已经存在缓存中,那么之前的缓存数据和过期时间, 将会被新的缓存数据和缓存时间分别替换。 yii\caching\Cache
off() Detaches an existing event handler from this component. yii\base\Component
offsetExists() 返回是否指定的键存在缓存中的布尔值。 该方法是实现 ArrayAccess 接口必须实现的方法。 yii\caching\Cache
offsetGet() 根据指定的键从缓存中获取数据。 该方法是实现 ArrayAccess 接口必须实现的方法。 yii\caching\Cache
offsetSet() 把由键指定的值存入缓存中。 如果缓存中已经有来这个键,那么之前存在的缓存值 将会被新值替换。如果要增加过期参数和依赖,请使用 set() 方法。 该方法是实现 ArrayAccess 接口必须实现的方法。 yii\caching\Cache
offsetUnset() 根据指定的键从缓存中删除数据。 该方法是实现 ArrayAccess 接口必须实现的方法。 yii\caching\Cache
on() Attaches an event handler to an event. yii\base\Component
set() 根据键存入缓存值。 如果相同的键已经存在缓存中,那么之前的缓存数据和过期时间, 将会被新的缓存数据和缓存时间分别替换。 yii\caching\Cache
trigger() Triggers an event. yii\base\Component

受保护的方法

隐藏继承的方法

方法描述被定义在
addValue() 在指定的键不存在的情况下,才存入指定的缓存值。 这个在指定的缓存驱动上存入数据的方法, 应该留给子类来实现。 yii\caching\Cache
addValues() 一次性存入多个 键-值 对到缓存中。 默认的实现就是通过循环调用 addValue() 方法添加缓存值。如果当前环境的缓存驱动 支持 multi-add,该方法将会被覆盖而是尽量使用 multi-add 来发挥它的特性。 yii\caching\Cache
deleteValue() 根据指定的键把数据从缓存中删除。 这个从实际的缓存驱动里删除数据的方法应该留给子类来实现。 yii\caching\Cache
flushValues() 从缓存中删除所有的值。 子类应该通过实现该方法完成冲刷数据的操作。 yii\caching\Cache
getValue() 根据指定的键从缓存中获取数据。 这个从指定的缓存驱动中获取数据的方法, 应该留给子类来实现。 yii\caching\Cache
getValues() 根据多个缓存的键一次从缓存中获取多个对应的缓存数据。 默认的实现就是通过循环调用 getValue() 方法 从缓存中依次获取数据。如果当前的缓存驱动支持 multiget, 该方法将会被覆盖而是尽量使用 multiget 来发挥它的特性。 yii\caching\Cache
setValue() 根据指定的键把数据存入缓存中。 这个在指定的缓存驱动上存入数据的方法, 应该留给子类来实现。 yii\caching\Cache
setValues() 一次性存入多个 键-值 对到缓存中。 默认的实现就是通过循环调用 setValue() 方法。如果当前环境的缓存驱动 支持 multi-set,该方法将会被覆盖而是尽量使用 multi-set 来发挥它的特性。 yii\caching\Cache

属性详情

$defaultDuration 公共 属性 (自版本 2.0.11 可用)

以秒为单位的默认的缓存持续时间。默认是 0,意味着永不过期。 在使用 set() 时并且没有明确传递时间参数时才会使用这个属性。

$keyPrefix 公共 属性

每个缓存键的一个字符串前缀,据此可以保证在整个缓存系统层面上它都是全局唯一的。 如果出现相同的缓存驱动在多个不同的应用环境下使用,建议你为每个应用环境里的这个缓存系统 设置一个唯一的缓存键前缀。

为保证系统的共用性,你应该只使用由字母和数字组成的字符串。

public string $keyPrefix null
$serializer 公共 属性

用来序列化和反序列化缓存数据的函数。默认是 null,这意味着 默认使用 PHP 的 serialize()unserialize() 两个函数。如果你想使用更高效的序列化功能 (比如 igbinary),可以配置该属性为两个元素的数组。 第一个元素指明序列化的函数而第二个元素则指明反序列化的函数。 如果该属性设置为 false,那么数据将直接在当前缓存组件下存入缓存,无需序列化过程, 获取数据时同样不需要反序列化。如果你正使用 cache dependency 缓存依赖, 那么请你不要关闭序列化功能,因为缓存依赖的实现有赖于数据序列化功能。还有, 一些缓存的实现类在保存和获取非字符串数据时并不都是完全合适的。

public null|array|false $serializer null

方法详情

add() 公共 方法

如果对应缓存键不存在,那么把由它指明的缓存数据存入缓存中, 如果缓存键存在,那么什么也不会做。

public boolean add($key, $value, $duration 0, $dependency null)
$key mixed

指明缓存值的键。可以是一个简单的字符串, 或者是一个包含着缓存键的复杂数据结构。

$value mixed

要缓存的值。

$duration integer

缓存数据过期的秒数,0 意味着永不过期。

$dependency yii\caching\Dependency

缓存数据的依赖。如果依赖发生变化, 那么使用 get() 方法获取对应的缓存数据时将是无效的。 如果 $serializer 是 false 的话,该参数将会被忽略。

return boolean

数据是否成功存入缓存。

addValue() 受保护 抽象 方法

在指定的键不存在的情况下,才存入指定的缓存值。 这个在指定的缓存驱动上存入数据的方法, 应该留给子类来实现。

protected abstract boolean addValue($key, $value, $duration)
$key string

指明缓存值的键。

$value mixed

要缓存的值。大多数情况下它是一个字符串,如果你禁用了 $serializer, 它也可以是其它数据类型。

$duration integer

缓存值过期的秒数。0 表示永不过期。

return boolean

如果成功存入缓存返回 true,否则返回 false。

addValues() 受保护 方法

一次性存入多个 键-值 对到缓存中。 默认的实现就是通过循环调用 addValue() 方法添加缓存值。如果当前环境的缓存驱动 支持 multi-add,该方法将会被覆盖而是尽量使用 multi-add 来发挥它的特性。

protected array addValues($data, $duration)
$data array

数组,数组的键对应缓存的键而值就是要缓存的值。

$duration integer

缓存数据过期的秒数,0 意味着永不过期。

return array

未能存入缓存数据的键列表。

buildKey() 公共 方法

根据给定的键构建标准的缓存键。

如果给定的键是一个只包含字母数字并且不超过 32 个字符的字符串, 那么只增加 $keyPrefix 后直接返回。否则,会经过序列化处理,比如应用 MD5 散列, 然后再增加 $keyPrefix 前缀后生成标准的键返回。

public string buildKey($key)
$key mixed

要标准化的键。

return string

生成的缓存键。

delete() 公共 方法

根据指定的键从缓存中删除数据值。

public boolean delete($key)
$key mixed

指明要删除的缓存值的键。可以是一个简单的字符串, 或者是一个包含着缓存键的复杂数据结构。

return boolean

如果删除过程没有发生错误。

deleteValue() 受保护 抽象 方法

根据指定的键把数据从缓存中删除。 这个从实际的缓存驱动里删除数据的方法应该留给子类来实现。

protected abstract boolean deleteValue($key)
$key string

指明要删除缓存的键。

return boolean

如果删除过程没有发生错误。

exists() 公共 方法

检测指定的键是否存在缓存中。 如果缓存数据量大的话,这比从缓存中直接获取值稍快些。 如果当前环境的缓存系统不支持该特性,该方法将会尝试模拟实现该特性, 但是相比直接从缓存中获取数据在性能上没有什么提高。 注意,缓存数据如果有关联的依赖存在,并且确实发生了变化, 但是该方法不会检测缓存依赖的变化情况。所以有可能调用 get() 方法返回 false, 而调用该方法返回 true。

public boolean exists($key)
$key mixed

指明缓存值的键。可以是一个简单的字符串, 或者是一个包含着缓存键的复杂数据结构。

return boolean

如果缓存值存在返回 true,如果缓存值不存在或者已经过期则返回 false。

flush() 公共 方法

从缓存中删除所有的值。 如果缓存系统在多个应用中共享的话,请谨慎执行该操作。

public boolean flush()
return boolean

是否冲刷缓存过程是成功地。

flushValues() 受保护 抽象 方法

从缓存中删除所有的值。 子类应该通过实现该方法完成冲刷数据的操作。

protected abstract boolean flushValues()
return boolean

是否冲刷缓存过程是成功地。

get() 公共 方法

根据指定的键从缓存中获取数据。

public mixed get($key)
$key mixed

指明缓存值的键。可以是一个简单的字符串, 或者是一个包含着缓存键的复杂数据结构。

return mixed

缓存中的值,如果缓存值不存在, 缓存已经过期或者和缓存数据相关的缓存依赖发生了变化则返回 false。

getOrSet() 公共 方法 (自版本 2.0.11 可用)

联合了 set()get() 两个方法的大方法,可以根据 $key 获取值, 或者在 $key 对应的缓存数据不存在的情况下,存入 $callable 执行后的结果作为缓存数据。

使用实例:

public function getTopProducts($count = 10) {
    $cache = $this->cache; // Could be Yii::$app->cache
    return $cache->getOrSet(['top-n-products', 'n' => $count], function ($cache) use ($count) {
        return Products::find()->mostPopular()->limit(10)->all();
    }, 1000);
}
public mixed getOrSet($key, $callable, $duration null, $dependency null)
$key mixed

指明缓存值的键。可以是一个简单的字符串, 或者是一个包含着缓存键的复杂数据结构。

$callable callable|Closure

用来生成缓存数据的回调或者匿名函数。 如果 $callable 返回 false,那么不会缓存该值。

$duration integer

以秒为单位的缓存数据的过期时间,如果没有传递该参数, 默认使用 $defaultDuration

$dependency yii\caching\Dependency

缓存数据的依赖。如果依赖发生变化, 那么使用 get() 方法获取对应的缓存数据时将是无效的。 如果 $serializerfalse 的话,该参数将会被忽略。

return mixed

$callable 的执行结果。

getValue() 受保护 抽象 方法

根据指定的键从缓存中获取数据。 这个从指定的缓存驱动中获取数据的方法, 应该留给子类来实现。

protected abstract mixed|false getValue($key)
$key string

指明缓存数据的唯一键。

return mixed|false

缓存中的值,如果缓存值不存在或者已经过期则返回 false。 大多数情况下它是一个字符串,如果你禁用了 $serializer,它也可以是其它数据类型。

getValues() 受保护 方法

根据多个缓存的键一次从缓存中获取多个对应的缓存数据。 默认的实现就是通过循环调用 getValue() 方法 从缓存中依次获取数据。如果当前的缓存驱动支持 multiget, 该方法将会被覆盖而是尽量使用 multiget 来发挥它的特性。

protected array getValues($keys)
$keys array

指明多个缓存数据的字符串键列表。

return array

由对应的键指定的缓存数据列表。

madd() 公共 方法
Deprecated 该方法是 multiAdd() 的别名,会在 2.1.0 版本移除。

存入多个数据到缓存中。每个数据项都包含缓存键和对应的缓存值。 如果缓存中已经存在了对应的键,那么这个存在的缓存值和过期时间将会继续保留。

public array madd($items, $duration 0, $dependency null)
$items array

要缓存的数据项,以键值对形式。

$duration integer

缓存数据过期的秒数,0 意味着永不过期。

$dependency yii\caching\Dependency

缓存数据的依赖。如果依赖发生变化, 那么使用 get() 方法获取对应的缓存数据时将是无效的。 如果 $serializer 是 false 的话,该参数将会被忽略。

return array

未能存入缓存的键列表。

mget() 公共 方法
Deprecated 该方法是 multiGet() 的别名,会在 2.1.0 版本移除。

根据多个缓存的键一次从缓存中获取多个对应的缓存数据。 一些缓存驱动(比如 memcache,apc)允许一次性获取多个缓存数据,这无疑会提高性能。 如果当前环境的缓存系统不支持该特性的话, 该方法也会尝试模拟实现。

public array mget($keys)
$keys string[]

指明多个缓存数据的字符串键列表。

return array

对应缓存键列表的缓存数据,返回的数组格式是 (key, value)键值对。 如果缓存值不存在或者缓存过期,那么对应的缓存值将会是 false。

mset() 公共 方法
Deprecated 该方法是 multiSet() 的别名,会在 2.1.0 版本移除

存入多个数据到缓存中。每个数据项都包含缓存键和对应的缓存值。 如果相同的键已经存在缓存中,那么之前的缓存数据和过期时间, 将会被新的缓存数据和缓存时间分别替换。

public array mset($items, $duration 0, $dependency null)
$items array

要缓存的数据项,作为键值对。

$duration integer

缓存数据过期的秒数,0 意味着永不过期。

$dependency yii\caching\Dependency

缓存数据的依赖。如果依赖发生变化, 那么使用 get() 方法获取对应的缓存数据时将是无效的。 如果 $serializer 是 false 的话,该参数将会被忽略。

return array

未能存入缓存的键列表。

multiAdd() 公共 方法 (自版本 2.0.7 可用)

存入多个数据到缓存中。每个数据项都包含缓存键和对应的缓存值。 如果缓存中已经存在了对应的键,那么这个存在的缓存值和过期时间将会继续保留。

public array multiAdd($items, $duration 0, $dependency null)
$items array

要缓存的数据项,以键值对形式。

$duration integer

缓存数据过期的秒数,0 意味着永不过期。

$dependency yii\caching\Dependency

缓存数据的依赖。如果依赖发生变化, 那么使用 get() 方法获取对应的缓存数据时将是无效的。 如果 $serializer 是 false 的话,该参数将会被忽略。

return array

未能存入缓存的键列表。

multiGet() 公共 方法 (自版本 2.0.7 可用)

根据多个缓存的键一次从缓存中获取多个对应的缓存数据。 一些缓存驱动(比如 memcache,apc)允许一次性获取多个缓存数据,这无疑会提高性能。 如果当前环境的缓存系统不支持该特性的话, 该方法也会尝试模拟实现。

public array multiGet($keys)
$keys string[]

指明多个缓存数据的字符串键列表。

return array

对应缓存键列表的缓存数据,返回的数组格式是 (key, value)键值对。 如果缓存值不存在或者缓存过期,那么对应的缓存值将会是 false。

multiSet() 公共 方法 (自版本 2.0.7 可用)

存入多个数据到缓存中。每个数据项都包含缓存键和对应的缓存值。 如果相同的键已经存在缓存中,那么之前的缓存数据和过期时间, 将会被新的缓存数据和缓存时间分别替换。

public array multiSet($items, $duration 0, $dependency null)
$items array

要缓存的数据项,以键值对形式。

$duration integer

缓存数据过期的秒数,0 意味着永不过期。

$dependency yii\caching\Dependency

缓存数据的依赖。如果依赖发生变化, 那么使用 get() 方法获取对应的缓存数据时将是无效的。 如果 $serializer 是 false 的话,该参数将会被忽略。

return array

未能存入缓存数据的键列表。

offsetExists() 公共 方法

返回是否指定的键存在缓存中的布尔值。 该方法是实现 ArrayAccess 接口必须实现的方法。

public boolean offsetExists($key)
$key string

一个指明缓存数据的键。

offsetGet() 公共 方法

根据指定的键从缓存中获取数据。 该方法是实现 ArrayAccess 接口必须实现的方法。

public mixed offsetGet($key)
$key string

一个指明缓存数据的键。

return mixed

缓存中的值,如果缓存值不存在或者已经过期则返回 false。

offsetSet() 公共 方法

把由键指定的值存入缓存中。 如果缓存中已经有来这个键,那么之前存在的缓存值 将会被新值替换。如果要增加过期参数和依赖,请使用 set() 方法。 该方法是实现 ArrayAccess 接口必须实现的方法。

public void offsetSet($key, $value)
$key string

指明缓存数据的键。

$value mixed

要缓存的数据。

offsetUnset() 公共 方法

根据指定的键从缓存中删除数据。 该方法是实现 ArrayAccess 接口必须实现的方法。

public void offsetUnset($key)
$key string

要删除的值对应的键。

set() 公共 方法

根据键存入缓存值。 如果相同的键已经存在缓存中,那么之前的缓存数据和过期时间, 将会被新的缓存数据和缓存时间分别替换。

public boolean set($key, $value, $duration null, $dependency null)
$key mixed

指明缓存值的键。可以是一个简单的字符串, 或者是一个包含着缓存键的复杂数据结构。

$value mixed

要缓存的值。

$duration integer

以秒为单位的缓存数据的过期时间,如果没有传递该参数, 默认使用 $defaultDuration

$dependency yii\caching\Dependency

缓存数据的依赖。如果依赖发生变化, 那么使用 get() 方法获取对应的缓存数据时将是无效的。 如果 $serializer 是 false 的话,该参数将会被忽略。

return boolean

数据是否成功存入缓存。

setValue() 受保护 抽象 方法

根据指定的键把数据存入缓存中。 这个在指定的缓存驱动上存入数据的方法, 应该留给子类来实现。

protected abstract boolean setValue($key, $value, $duration)
$key string

指明缓存值的键。

$value mixed

要缓存的值。大多数情况下它是一个字符串,如果你禁用了 $serializer, 它也可以是其它数据类型。

$duration integer

缓存值过期的秒数。0 表示永不过期。

return boolean

如果成功存入缓存返回 true,否则返回 false。

setValues() 受保护 方法

一次性存入多个 键-值 对到缓存中。 默认的实现就是通过循环调用 setValue() 方法。如果当前环境的缓存驱动 支持 multi-set,该方法将会被覆盖而是尽量使用 multi-set 来发挥它的特性。

protected array setValues($data, $duration)
$data array

数组,数组的键对应缓存的键而值就是要缓存的值。

$duration integer

缓存数据过期的秒数,0 意味着永不过期。

return array

未能存入缓存数据的键列表。