Рецессивный запрос Redis на основе типа данных - PullRequest
0 голосов
/ 07 января 2019

Я представляю объекты JSON в Redis путем выравнивания ключей пути JSON следующим образом:

JSON-объект

{
    "users": [
        {
            "name": "John Smith",
            "address": {
                "street": "12 Rainbow Avenue",
                "country": "Fuzzyland"
            }
        }, {
            "name": "Billy Bob",
            "address": {
                "street": "8 Rocky Lane",
                "country": "Fraggleville"
            }
        }
    ]
}

Redis записей

users // SET [0, 1]
users:0 // SET [name, address]
users:0:name // STRING "John Smith"
users:0:address // SET [street, country]
users:0:address:street // STRING "12 Rainbow Avenue"
users:0:address:country // STRING "Fuzzyland"
users:1 // SET [name, address]
users:1:name // STRING "Billy Bob"
users:1:address // SET [street, country]
users:1:address:street // STRING "8 Rocky Lane"
users:1:address:country // STRING "Fraggleville"

Как видите, для свойств, которые являются массивами или литералами объектов, я использую Redis SET для хранения доступных ключей.

Мне достаточно легко преобразовать объект JSON в эту структуру, используя Node. Однако я не достаточно опытен с Redis, чтобы писать рекурсивные запросы, которые объединяют сложный результат.

Например, скажем, я хочу получить все ключи и значения для users:1. Как мне написать запрос, который смотрит на значение users:1, видит, что это SET, поэтому использует значения из этого как другой набор ключей запроса?

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