Как вы получаете список потоков? - PullRequest
0 голосов
/ 09 января 2019

Мне нужно получить список всех потоков (ключей) в базе данных, но я не могу найти команду для этого.

Я уже пытался просмотреть все ключи и проверить их тип, но это слишком медленно / дорого.

Я хотел бы сделать что-то вроде XSCAN и получить список ключей вроде: ["stream1", "stream2"]

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Если вы можете иметь префикс в именах потоков, например: «MyStream: 1», «MyStream: 2» Затем вы можете использовать обычную команду сканирования с шаблонами, соответствующими MyStream: *

EDIT: Для решения проблем OP не нужно использовать префикс и использовать команду SCAN как есть, добавляя из комментариев:

Вы можете избежать использования префикса, используя возможности пространств имен, предоставляемые Redis. Вы можете назначить «базу данных» (по умолчанию 0-15) для имен потоков. Допустим, вы используете базу данных 5 для потоков, тогда команда сканирования в базе данных 5 должна возвращать только ключи в ней. redis.io/commands/select

0 голосов
/ 09 января 2019

Нет такой команды. То же самое, что нет способа получить список других структур данных, например, СПИСОК, КОМПЛЕКТ.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...