Класс yii\caching\DbCache
| Наследование | yii\caching\DbCache » yii\caching\Cache » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable, yii\caching\CacheInterface |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/caching/DbCache.php |
DbCache реализует компонент кеширования, хранящий кешированные данные в базе данных.
По умолчанию, DbCache хранит данные сеанса в таблице базы данных с именем 'cache'. Эта таблица должна быть предварительно создана. Имя таблицы можно изменить, установив $cacheTable.
Обратитесь к yii\caching\Cache для получения общей информации об операциях кеширования, поддерживаемых DbCache.
Следующий пример показывает, как можно настроить приложение для использования DbCache:
'cache' => [
'class' => 'yii\caching\DbCache',
// 'db' => 'mydb',
// 'cacheTable' => 'my_cache',
]
Для получения более подробной информации и инструкций по использованию Cache, см. статью руководства по кэшированию.
Общедоступные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $behaviors | yii\base\Behavior[] | Список поведений, прикрепленных к данному компоненту | yii\base\Component |
| $cacheTable | string | Имя таблицы БД для хранения кешированных данных. | yii\caching\DbCache |
| $db | yii\db\Connection|array|string | Объект подключения к БД или идентификатор компонента приложения для подключения к БД. | yii\caching\DbCache |
| $defaultDuration | integer | Продолжительность по умолчанию в секундах, прежде чем запись кеша истечёт. | yii\caching\Cache |
| $gcProbability | integer | Вероятность (из миллиона) выполнения сбора мусора (GC), когда фрагмент данных помещается в кеш. | yii\caching\DbCache |
| $keyPrefix | string | Строка, добавляемая в качестве префикса к каждому ключу кеша, чтобы обеспечить его уникальность во всем хранилище кеша. | yii\caching\Cache |
| $serializer | null|array|false | Функции для сериализации и десериализации кешированных данных. | yii\caching\Cache |
Общедоступные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Object |
| __clone() | Этот метод вызывается после создания объекта путем клонирования существующего. | yii\base\Component |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в null. | yii\base\Object |
| add() | Сохраняет значение, идентифицируемое ключом, в кэше, если в кэше нет этого ключа. | yii\caching\Cache |
| attachBehavior() | Присоединяет поведение к компоненту. | yii\base\Component |
| attachBehaviors() | Присоединяет список поведений к компоненту. | yii\base\Component |
| behaviors() | Возвращает список поведений, которые должен выполнять этот компонент. | yii\base\Component |
| buildKey() | Создает нормализованный ключ кэша из заданного ключа. | yii\caching\Cache |
| canGetProperty() | Возвращает значение, указывающее, можно ли прочитать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| delete() | Удаляет значение с указанным ключом из кэша | yii\caching\Cache |
| detachBehavior() | Отсоединяет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведения от компонента. | yii\base\Component |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. | yii\base\Component |
| exists() | Проверяет, существует ли указанный ключ в кэше. | yii\caching\DbCache |
| flush() | Удаляет все значения из кэша. | yii\caching\Cache |
| gc() | Удаляет истекшие данные. | yii\caching\DbCache |
| get() | Извлекает значение из кэша с указанным ключом. | yii\caching\Cache |
| getBehavior() | Возвращает объект именованного поведения. | yii\base\Component |
| getBehaviors() | Возвращает все поведения, присоединенные к этому компоненту. | yii\base\Component |
| getOrSet() | Метод сочетает в себе методы set() и get() для извлечения значения, идентифицируемого ключом $key, или для сохранения результата выполнения $callable, если для $key нет кэша. | yii\caching\Cache |
| hasEventHandlers() | Возвращает значение, указывающее, прикреплен ли какой-либо обработчик к указанному событию. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определен ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует компонент DbCache. | yii\caching\DbCache |
| madd() | Сохраняет несколько элементов в кэше. Каждый элемент содержит значение, идентифицируемое ключом. | yii\caching\Cache |
| mget() | Извлекает несколько значений из кэша по указанным ключам. | yii\caching\Cache |
| mset() | Сохраняет несколько элементов в кэше. Каждый элемент содержит значение, идентифицируемое ключом. | yii\caching\Cache |
| multiAdd() | Сохраняет несколько элементов в кэше. Каждый элемент содержит значение, идентифицируемое ключом. | yii\caching\Cache |
| multiGet() | Извлекает несколько значений из кэша по указанным ключам. | yii\caching\Cache |
| multiSet() | Сохраняет несколько элементов в кэше. Каждый элемент содержит значение, идентифицируемое ключом. | yii\caching\Cache |
| off() | Отсоединяет существующий обработчик событий от этого компонента. | yii\base\Component |
| offsetExists() | Возвращает, есть ли запись в кэше с указанным ключом. | yii\caching\Cache |
| offsetGet() | Извлекает значение из кэша с указанным ключом. | yii\caching\Cache |
| offsetSet() | Сохраняет значение, идентифицируемое ключом, в кэше. | yii\caching\Cache |
| offsetUnset() | Удаляет значение с указанным ключом из кэша. Этот метод требуется интерфейсом ArrayAccess. | yii\caching\Cache |
| on() | Присоединяет обработчик событий к событию. | yii\base\Component |
| set() | Сохраняет значение, идентифицируемое ключом, в кэше. | yii\caching\Cache |
| trigger() | Вызывает событие. | yii\base\Component |
Защищенные методы
| Метод | Описание | Определено в |
|---|---|---|
| addValue() | Сохраняет значение, идентифицированное ключом, в кэше, если этот ключ в кэше отсутствует. | yii\caching\DbCache |
| addValues() | Добавляет несколько пар ключ-значение в кэш. | yii\caching\Cache |
| deleteValue() | Удаляет значение с заданным ключом из кэша. Это реализация метода, объявленного в родительском классе. | yii\caching\DbCache |
| flushValues() | Удаляет все значения из кэша. | yii\caching\DbCache |
| getValue() | Извлекает значение из кэша по заданному ключу. | yii\caching\DbCache |
| getValues() | Извлекает несколько значений из кэша по заданным ключам. | yii\caching\DbCache |
| setValue() | Сохраняет значение, идентифицированное ключом, в кэше. | yii\caching\DbCache |
| setValues() | Сохраняет несколько пар ключ-значение в кэше. | yii\caching\Cache |
Подробное описание свойств
$cacheTable общедоступное свойство
Имя таблицы БД для хранения содержимого кэша. Таблица должна быть предварительно создана следующим образом:
CREATE TABLE cache (
id char(128) NOT NULL PRIMARY KEY,
expire int(11),
data BLOB
);
где 'BLOB' относится к типу BLOB в вашей СУБД. Ниже приведены типы BLOB, которые могут быть использованы для некоторых популярных СУБД:
- MySQL: LONGBLOB
- PostgreSQL: BYTEA
- MSSQL: BLOB
При использовании DbCache на сервере производства, рекомендуется создать индекс БД для столбца 'expire' в таблице кэша для повышения производительности.
public string $cacheTable = '{{%cache}}'
$db общедоступное свойство
Объект подключения к БД или идентификатор компонента приложения подключения к БД. После создания объекта DbCache, если вы хотите изменить это свойство, вы должны назначить только объект подключения к БД. Начиная с версии 2.0.2, это также может быть массив конфигурации для создания объекта.
public yii\db\Connection|array|string $db = 'db'
$gcProbability общественное свойство
Вероятность (частей на миллион), что сборка мусора (GC) должна быть выполнена при сохранении части данных в кэше. По умолчанию 100, что означает 0,01% вероятность. Это число должно быть между 0 и 1000000. Значение 0 означает, что сборка мусора не будет выполнена вообще.
public integer $gcProbability = 100
Подробное описание методов
addValue() защищённый метод
Сохраняет значение, идентифицируемое ключом, в кэше, если кэш не содержит этот ключ.
Это реализация метода, объявленного в родительском классе.
| защищённый boolean addValue ( $key, $value, $duration ) | ||
|---|---|---|
| $key | string |
Ключ, идентифицирующий значение, которое должно быть помещено в кэш |
| $value | string |
Значение, которое должно быть помещено в кэш. Другие типы (если вы отключили $serializer) не могут быть сохранены. |
| $duration | integer |
Количество секунд, в течение которых значение кэша будет истекать. 0 означает, что срок действия никогда не истекает. |
| return | boolean |
True, если значение успешно сохранено в кэше, иначе false |
deleteValue() защищённый метод
Удаляет значение с указанным ключом из кэша. Это реализация метода, объявленного в родительском классе.
| защищённый boolean deleteValue ( $key ) | ||
|---|---|---|
| $key | string |
Ключ значения, которое нужно удалить |
| return | boolean |
Если при удалении не произошло ошибок |
exists() публичный метод
Проверяет, существует ли указанный ключ в кэше.
Это может быть быстрее, чем получение значения из кэша, если данные большие. Обратите внимание, что этот метод не проверяет, изменилась ли зависимость, связанная с кэшированными данными, если она есть. Таким образом, вызов get() может вернуть false, в то время как exists возвращает true.
| публичный boolean exists ( $key ) | ||
|---|---|---|
| $key | mixed |
Ключ, идентифицирующий кэшированное значение. Это может быть простая строка или сложная структура данных, состоящая из факторов, представляющих ключ. |
| return | boolean |
True, если значение существует в кэше, false, если значение отсутствует в кэше или истекло. |
flushValues() защищённый метод
Удаляет все значения из кэша.
Это реализация метода, объявленного в родительском классе.
| защищённый boolean flushValues ( ) | ||
|---|---|---|
| return | boolean |
Успешно ли выполнена операция сброса. |
gc() публичный метод
Удаляет просроченные значения данных.
| публичный void gc ( $force = false ) | ||
|---|---|---|
| $force | boolean |
Нужно ли принудительно выполнить сборку мусора независимо от $gcProbability. По умолчанию false, что означает, что фактическое удаление происходит с вероятностью, указанной $gcProbability. |
getValue() защищённый метод
Извлекает значение из кэша по указанному ключу.
Это реализация метода, объявленного в родительском классе.
| защищённый string|false getValue ( $key ) | ||
|---|---|---|
| $key | string |
Уникальный ключ, идентифицирующий кэшированное значение |
| return | string|false |
Значение, сохранённое в кэше, false, если значение отсутствует в кэше или истекло. |
getValues() защищённый метод
Извлекает несколько значений из кэша по указанным ключам.
| защищённый array getValues ( $keys ) | ||
|---|---|---|
| $keys | array |
Список ключей, идентифицирующих кэшированные значения |
| return | array |
Список кэшированных значений, индексированных по ключам |
init() публичный метод
Инициализирует компонент DbCache.
Этот метод инициализирует свойство $db, чтобы убедиться, что оно ссылается на корректное подключение к БД.
| публичный void init ( ) | ||
|---|---|---|
| throws | yii\base\InvalidConfigException |
если $db некорректен. |
setValue() защищённый метод
Сохраняет значение, идентифицируемое ключом, в кэше.
Это реализация метода, объявленного в родительском классе.
| защищённый boolean setValue ( $key, $value, $duration ) | ||
|---|---|---|
| $key | string |
Ключ, идентифицирующий значение, которое должно быть помещено в кэш |
| $value | string |
Значение, которое должно быть помещено в кэш. Другие типы (если вы отключили $serializer) не могут быть сохранены. |
| $duration | integer |
Количество секунд, в течение которых значение кэша будет истекать. 0 означает, что срок действия никогда не истекает. |
| return | boolean |
True, если значение успешно сохранено в кэше, иначе false |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-caching-dbcache.html