Адаптер Couchbase Cache

Дата обновления перевода 2021-12-25

Адаптер Couchbase Cache

5.4

Адаптер Couchbase Cache Adapter был представлен в Symfony 5.4.

Этот адаптер хранит значения в памяти, используя один (или более) экземпляр сервера Couchbase. В отличие от адаптера APCu, и схоже с адаптером Memcached, он не ограничен общей памятью текущего сервера; вы можете хранить содержание независимо от вашего PHP-окружения. Возможность использовать кластер серверов для предоставления избыточности и/или восстановления после отказа, также доступна.

Caution

Требования: Расширение Couchbase PHP, а также сервер Couchbase должны быть установлены, активны и запущены, чтобы использовать этот адаптер. Для адаптера требуется Расширение Couchbase PHP версии 3.0 или выше.

Данный адаптер ожидает экземпляр коллекции Couchbase, переданный в качестве первого параметра. Пространство имен и жизненный цикл кеша по умолчанию могут быть по желанию переданы в качестве второго и третьего параметров:

1
2
3
4
5
6
7
8
9
10
11
12
13
use Symfony\Component\Cache\Adapter\CouchbaseCollectionAdapter;

$cache = new CouchbaseCollectionAdapter(
    // объект клиента, который устанавливает опции и добавляет экземпляр(ы) сервера
    $client,

    // строка, добавленая в начале ключей объектов, хранящихся в этом кеше
    $namespace,

    // жизненный цикл по умолчанию (в секундах) для объектов кеша, которые не определяют собственный
    // жизненный цикл, где значение 0 приведет к бессрочному хранению объектов
    $defaultLifetime
);

Сконфигурируйте соединение

Метод хелпера createConnection() позволяет создание и конфигурацию экземпляра класса коллекции Couchbase, используя Имя источника данных (DSN) или массив DSN:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use Symfony\Component\Cache\Adapter\CouchbaseCollectionAdapter;

// передать одну строку DSN для регистрации одного сервера для клиента
$client = CouchbaseCollectionAdapter::createConnection(
    'couchbase://localhost'
    // DSN может включать в себя опции конфигурации (передайте их в виде строки запроса):
    // 'couchbase://localhost:11210?operationTimeout=10'
    // 'couchbase://localhost:11210?operationTimeout=10&configTimout=20'
);

// передать массив строк DSN для регистрации множества серверов для клиента
$client = CouchbaseCollectionAdapter::createConnection([
    'couchbase://10.0.0.100',
    'couchbase://10.0.0.101',
    'couchbase://10.0.0.102',
    // etc...
]);

// одно DSN может определять множество серверов, используя следующий синтаксис:
// host[hostname-or-IP:port] (where port is optional). Sockets must include a trailing ':'
$client = CouchbaseCollectionAdapter::createConnection(
    'couchbase:?host[localhost]&host[localhost:12345]'
);

Сконфигурируйте опции

Метод хелпера createConnection() также принимает массив опций в качестве второго аргумента. Ожидаемый формат - ассоциированный массив пар key => value, представляющий собой имена опций и их соответствующие значения:

1
2
3
4
5
6
7
8
9
10
11
12
13
use Symfony\Component\Cache\Adapter\CouchbaseCollectionAdapter;

$client = CouchbaseCollectionAdapter::createConnection(
    // строка DSN или массив строк DSN
    [],

    // ассоциированный массив опций конфигурации
    [
        'username' => 'xxxxxx',
        'password' => 'yyyyyy',
        'configTimeout' => '100',
    ]
);

Доступные опции

username (тип: string)
Имя пользователя для соединения CouchbaseCluster.
password (тип: string)
Пароль соединения CouchbaseCluster.
operationTimeout (тип: int, по умолчанию: 2500000)
Таймаут операции (в микросекундах) - это максимальное количество времени, которое библиотека будет ждать, пока операция получит ответ, перед запуском обратного вызова со статусом неудачи.
configTimeout (тип: int, по умолчанию: 5000000)
То, как долго (в микросекундах) клиент будет ждать, чтобы получить изначальную конфигурацию.
configNodeTimeout (тип: int, по умолчанию: 2000000)
Поузловой таймаут конфигурации (в микросекундах).
viewTimeout (тип: int, по умолчанию: 75000000)
Таймаут I/O (в микросекундах) для HTTP-запросов к Couchbase Views API.
httpTimeout (тип: int, по умолчанию: 75000000)
Таймаут I/O (в микросекундах) для HTTP-запросов (API менеджмент).
configDelay (тип: int, по умолчанию: 10000)
Регулирование обновления конфигурации Изменить количество времени (в микросекундах) до того, как насильно будет установлена ошибка конфигурации до своего максимального числа, форсируя обновление конфигурации.
htconfigIdleTimeout (тип: int, по умолчанию: 4294967295)
Ожидание/устойчивость для самозагрузки HTTP (в микросекундах).
durabilityInterval (тип: int, по умолчанию: 100000)
Время (в микросекундах), которое клиент будет ждать, между повторными пробами заданного сервера.
durabilityTimeout (тип: int, по умолчанию: 5000000)
Время (в микросекундах), которое клиент проведет, отправляя повтроные пробы заданным мастерам и репликам ключей vBucket, до того, как они будут признаны неудовлетворительными для требований продолжительности.

Tip

Смотрите документацию предопределенные константы расширения коллекции Couchbase, чтобы узнать больше о доступных опциях.