Если у меня есть два ключа в Redis, такие как X: Y и X: Z, могу ли я получить их оба, выполнив поиск по X? - PullRequest
0 голосов
/ 13 июня 2018

Есть ли способ поиска по родительской части ключа в Redis?

Например: X:Y = [1,2] and X:Z = [4,6]

Оба ключа имеют подраздел ключа X.

Могу ли я выполнить какую-то операцию, чтобы получить X = [1,2,4,6]?

1 Ответ

0 голосов
/ 13 июня 2018

Redis не имеет встроенной возможности для этого, но вы можете использовать его для его создания.

Да, вы можете искать ключи в Redis по их имени, но это было бы неэффективно с точки зренияпроизводительности.Обратитесь к SCAN для получения дополнительной информации.

Более эффективный способ - индексировать ваши ключи, поэтому поиск выполняется в сублинейное время.См. Вторичное индексирование с помощью Redis для некоторых указателей.

Как только вы получили имена ваших ключей, кажется, что вы хотите объединить их значения.Одним из возможных типов данных, который поддерживает эту функцию, является набор Redis с помощью команды SUNION .

Альтернативный подход, полностью используемый для сканирования / индексации наборов и объединений, заключается в использовании одного типа данных.для всех «ключей» с одинаковым префиксом («X»).Redis Hash может сделать это за вас, и хотя он не предлагает эквивалент операции объединения на своих полях, он может быть реализован с помощью сценария Lua (или даже приложения).

Кроме этихдва подхода, я уверен, что есть больше способов использовать Redis для достижения того, что вы пытаетесь сделать.Правильный выбор - это понимание всех требований, но я боюсь, что в этом вопросе не хватает информации.

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