Адаптер кешу Couchbase

Дата оновлення перекладу 2024-04-30

Адаптер кешу Couchbase

7.1

CouchbaseBucketAdapter застарів, починаючи з Symfony 7.1, натомість використовуйте CouchbaseCollectionAdapter.

Цей адаптер зберігає значення в пам'яті, використовуючи один (або більше) екземплярів сервера Couchbase. На відміну від адаптера APCu, і схоже з адаптером Memcached, він не обмежується загальною пам'яттю поточного сервера; ви можете зберігати зміст незалежно від вашого середовища PHP. Можливість використовувати кластер сервісів для надання надмірності та/або відмовостійкості також наявна.

Caution

Вимоги: Розширення PHP Couchbase, а також сервер Couchbaase, повинні бути встановлені, активні та працювати задля використання цього адаптера. Для адаптера потрібна версія Розширення 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;

// передати один рядок DSN, щоб зареєструвати один сервер для клієнта
$client = CouchbaseBucketAdapter::createConnection(
    'couchbase://localhost'
    // DSN може містити опції конфігурації (передайте їх в якості рядку запиту):
    // 'couchbase://localhost:11210?operationTimeout=10'
    // 'couchbase://localhost:11210?operationTimeout=10&configTimeout=20'
);

// передати масив рядків DSN, щоб зареєструвати декілька серверів для клієнта
$client = CouchbaseBucketAdapter::createConnection([
    'couchbase://10.0.0.100',
    'couchbase://10.0.0.101',
    'couchbase://10.0.0.102',
    // і т.д. ...
]);

// одне DSN може визначати декілька серверів, використовуючи наступний синтаксис:
// host[hostname-or-IP:port] (де порт є опціональним). Сокети мають містити замикання ':'
$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(
    // рядок 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 bootstrap (у мікросекундах).
durabilityInterval (тип: int, за замовчуванням: 100000)
Час (у мікросекундах), який клієнт очікуватиме перед повторною спробою заданого сервера.
durabilityTimeout (тип: int, за замовчуванням: 5000000)
Час (у мікросекундах), який клієнт витрачатиме на відправку повторних спроб майстрам заданих ключів vBucket и реплікам до того, як вони будуть оголошені невідповідними до вимог стійкості.

Tip

Прочитайте документацію попередньо визначених констант розширення Couchbase Bucket, щоб дізнатися про інші доступні опції.