Адаптер Couchbase Cache

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

Адаптер Couchbase Cache

5.1

Адаптер CouchbaseBucketAdapter был представлен в Symfony 5.1.

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

Caution

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

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

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

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

    // название корзины
    $bucket,

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

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

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

Метод помощника createConnection() позволяет создавать и конфигурировать класс Couchbase Bucket используя Имя источника данных (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\CouchbaseBucketAdapter;

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

// передайте массив DSN-строк, чтобы зарегистрировать несколько серверов клиента
$client = CouchbaseBucketAdapter::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 = CouchbaseBucketAdapter::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\CouchbaseBucketAdapter;

$client = CouchbaseBucketAdapter::createConnection(
    // a DSN string or an array of DSN strings
    [],

    // ассоциативный массив опций конфигурации
    [
        '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 bootstrap (в микросекундах).
durabilityInterval (тип: int, по умолчанию: 100000)
Время (в микросекундах), которое клиент будет ждать перед повторной пробой заданного сервера.
durabilityTimeout (тип: int, по умолчанию: 5000000)
Время (в микросекундах), которое клиент будет тратить на отправку повторных проб мастерам заданных ключей vBucket и репликам, до того, как они будут объявлены несоответствующими требованиям устойчивости.

Tip

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