Как выбрать определенные ключи из хэша Redis - PullRequest
0 голосов
/ 06 февраля 2019

Я создал хэш Redis и сохранил записи ниже - 101- 104 - это ключи хеша

HMSET 101  field1 101 field2 yy field3 bb field4 300
HMSET 102  field1 102 field2 xx field3 bb field4 300
HMSET 103  field1 103 field2 yy field3 bb field4 300
HMSET 104  field1 104 field2 xx field3 bb field4 300

Я хочу получить все записи, имеющие field2 = xx (это похоже на предложение where из SQL)

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

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Я думаю, вы должны создать обратный индекс для ваших ключей и значения.то есть

 "value" ---> {{fieldName, HSETNAME}}
 Ex : xx --> {{field2,101},{field3,104}}

Перебирая правильный ключ, вы можете получить значение HMSET, а затем извлечь из него все записи.

Просто вам нужно манипулировать ключами изначения в соответствии с вашим вариантом использования.Вы можете найти больше информации здесь: Как вы ищете ключи со значением?Например, получить все КЛЮЧИ, где значение равно «somevalue»

0 голосов
/ 06 февраля 2019

Redis не предоставляет такой функциональности.

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

В качестве альтернативы, он предоставляет различные структуры данных для сохранения данных в соответствии с вашими потребностями доступа, например: список, хэш-карта, набор, отсортированные наборы и т. Д.

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

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