CLIENT
CLIENT TRACKING
CLIENT TRACKING <ON | OFF> [REDIRECT client-id] [PREFIX prefix [PREFIX prefix ...]] [BCAST] [OPTIN] [OPTOUT] [NOLOOP]
- Доступно с версии:
- 6.0.0
- Временная сложность:
- O(1). Некоторые опции могут добавить дополнительную сложность.
- Категории ACL:
-
@slow,@connection,
Эта команда включает функцию отслеживания в сервере Redis, которая используется для кеширования на стороне клиента с помощью сервера.
При включенном отслеживании Redis запоминает ключи, запрошенные соединением, чтобы позже отправить сообщения об аннулировании, когда такие ключи будут изменены. Сообщения об аннулировании отправляются в том же соединении (доступно только при использовании протокола RESP3) или перенаправляются в другое соединение (доступно также с RESP2 и Pub/Sub). Доступен специальный режим вещания, где клиенты, участвующие в этом протоколе, получают каждое уведомление, просто подписавшись на заданные префиксы ключей, независимо от ключей, которые они запросили. Учитывая сложность аргументов, обратитесь к документации по кешированию на стороне клиента для получения подробной информации. Данная страница руководства является лишь справочником по опциям этой подкоманды.
Для включения отслеживания используйте:
CLIENT TRACKING on ... options ...
Функция будет активна в текущем соединении на протяжении всего его существования, если отслеживание не будет отключено с помощью CLIENT TRACKING off в какой-то момент.
Ниже приведен список опций, которые изменяют поведение команды при включении отслеживания:
-
REDIRECT <id>: отправляет сообщения об аннулировании соединению с указанным идентификатором. Соединение должно существовать. Вы можете получить ID соединения с помощьюCLIENT ID. Если соединение, в которое мы перенаправляем, закрыто, в режиме RESP3 соединение с включенным отслеживанием получитtracking-redir-brokenсообщения для сигнализации об этом. -
BCAST: включает отслеживание в режиме вещания. В этом режиме сообщения об аннулировании сообщаются для всех указанных префиксов, независимо от запрошенных ключей. Вместо этого, когда режим вещания не включен, Redis отслеживает, какие ключи извлекаются с помощью команд только для чтения, и отправляет сообщения об аннулировании только для таких ключей. -
PREFIX <prefix>: для вещания регистрирует заданный префикс ключа, чтобы уведомления предоставлялись только для ключей, начинающихся с этой строки. Эту опцию можно использовать несколько раз для регистрации нескольких префиксов. Если вещание включено без этой опции, Redis будет отправлять уведомления для каждого ключа. Вы не можете удалить отдельный префикс, но можете удалить все префиксы, отключив и снова включив отслеживание. Использование этой опции добавляет дополнительную временную сложность O(N^2), где N — общее количество отслеживаемых префиксов. -
OPTIN: когда вещание НЕ активно, обычно не отслеживает ключи в командах только для чтения, если они не вызываются сразу после командыCLIENT CACHING yes. -
OPTOUT: когда вещание НЕ активно, обычно отслеживает ключи в командах только для чтения, если они не вызываются сразу после командыCLIENT CACHING no. -
NOLOOP: не отправлять уведомления о ключах, измененных самим этим соединением.
Возврат
Ответ в виде простой строки: OK если соединение успешно переведено в режим отслеживания или если режим отслеживания успешно отключен. В противном случае возвращается ошибка.
© 2006–2022 Salvatore Sanfilippo
Licensed under the Creative Commons Attribution-ShareAlike License 4.0.
https://redis.io/commands/client-tracking/