没有命名空间的类 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

Class yii\caching\ArrayCache

继承yii\caching\ArrayCache » yii\caching\Cache » yii\base\Component » yii\base\BaseObject
实现yii\base\Configurable, yii\caching\CacheInterface
可用版本自2.0
源码 https://github.com/yiichina/yii2/blob/api/framework/caching/ArrayCache.php

ArrayCache 通过把值存入数组来提供缓存,只对当前请求有效。

参考 yii\caching\Cache 查看 ArrayCache 支持的通用的缓存操作方法。

不像 yii\caching\Cache 那样,ArrayCache 允许 set()add()multiSet()multiAdd() 方法的过期参数 可以是浮点数,你可以以毫秒为单位指定过期时间(比如,0.1 表示 100 毫秒)。

为了增强 ArrayCache 的性能,你可以把 $serializer 设置为 false 来禁用缓存数据的序列化过程。

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

方法详情

addValue() 受保护 方法

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

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

指明缓存值的键。

$value mixed

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

$duration integer

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

return boolean

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

deleteValue() 受保护 方法

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

protected boolean deleteValue($key)
$key string

指明要删除缓存的键。

return boolean

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

exists() 公共 方法

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

public boolean exists($key)
$key mixed

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

return boolean

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

flushValues() 受保护 方法

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

protected boolean flushValues()
return boolean

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

getValue() 受保护 方法

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

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

指明缓存数据的唯一键。

return mixed|false

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

setValue() 受保护 方法

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

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

指明缓存值的键。

$value mixed

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

$duration integer

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

return boolean

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