Spec-Zone.ru › Redis

XINFO

XINFO GROUPS
Синтаксис
XINFO GROUPS key
Доступно с версии:
5.0.0
Сложность по времени:
O(1)
Категории ACL:
@read, @stream, @slow,

Эта команда возвращает список всех групп потребителей потока, хранящегося по адресу <key>.

По умолчанию, для каждой группы предоставляется следующая информация:

  • name: имя группы потребителей
  • consumers: количество потребителей в группе
  • pending: длина списка ожидающих записей группы (PEL), которые были доставлены, но еще не подтверждены
  • last-delivered-id: идентификатор последней записи, доставленной потребителям группы
  • entries-read: логический «счётчик чтения» последней записи, доставленной потребителям группы
  • lag: количество записей в потоке, которые всё ещё ожидают доставки потребителям группы, или NULL, если это число определить невозможно.

Задержка группы потребителей

Задержка заданной группы потребителей — это количество записей в диапазоне между entries_read группы и entries_added потока. Иными словами, это количество записей, которые ещё предстоит доставить потребителям группы.

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

Redis отслеживает задержку группы потребителей, используя два счётчика: количество всех добавленных записей в поток и количество логических чтений, выполненных группой потребителей. Задержка — это разница между этими двумя значениями.

Счётчик потока (поле entries_added команды XINFO STREAM) увеличивается на единицу при каждом вызове XADD и учитывает все записи, добавленные в поток за его время существования.

Счётчик группы потребителей, entries_read, — это логический счётчик записей, которые группа прочитала. Важно отметить, что этот счётчик является лишь эвристическим, а не точным, и поэтому используется термин «логический». Счётчик пытается отразить количество записей, которые группа должна была прочитать, чтобы достичь своего текущего last-delivered-id. Счётчик entries_read является точным только в идеальном мире, где группа потребителей начинает с первой записи потока и обрабатывает все его записи (т. е. никакие записи не удаляются до обработки).

Существует два особых случая, в которых этот механизм не может сообщить задержку:

  1. Группа потребителей создана или настроена с произвольным идентификатором последней доставленной записи (команды XGROUP CREATE и XGROUP SETID соответственно). Произвольным идентификатором является любой идентификатор, который не является идентификатором первой, последней записи потока или нулевой записи ("0-0").
  2. Одна или несколько записей между last-delivered-id группы и last-generated-id потока были удалены (с помощью XDEL или операции обрезки).

В обоих случаях счётчик чтения группы считается недействительным, и возвращаемое значение устанавливается в NULL, чтобы указать, что задержка в настоящее время недоступна.

Однако задержка недоступна только временно. Она восстанавливается автоматически во время нормальной работы, поскольку потребители продолжают обрабатывать сообщения. Как только группа потребителей доставит последнее сообщение в поток своим членам, она будет настроена с правильным логическим счётчиком чтения, и отслеживание задержки можно будет продолжить.

@reply

Массив ответов: список групп потребителей.

Примеры

> XINFO GROUPS mystream
1)  1) "name"
    2) "mygroup"
    3) "consumers"
    4) (integer) 2
    5) "pending"
    6) (integer) 2
    7) "last-delivered-id"
    8) "1638126030001-0"
    9) "entries-read"
   10) (integer) 2
   11) "lag"
   12) (integer) 0
2)  1) "name"
    2) "some-other-group"
    3) "consumers"
    4) (integer) 1
    5) "pending"
    6) (integer) 0
    7) "last-delivered-id"
    8) "1638126028070-0"
    9) "entries-read"
   10) (integer) 1
   11) "lag"
   12) (integer) 1

История

  • Начиная с версии Redis 7.0.0: добавлены поля entries-read и lag

© 2006–2022 Salvatore Sanfilippo
Licensed under the Creative Commons Attribution-ShareAlike License 4.0.
https://redis.io/commands/xinfo-groups/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API