у меня есть следующие данные, которые выглядят так:
{
location: 'zimbabwe',
phone_num: 123-123-1234,
ext: 2222
}
or
{
location: 'puerto rico',
phone_num: 222-222-2222,
ext: 8888
}
Мои конечные пользователи должны иметь возможность запрашивать REST API и отправлять что-то вроде этого:
http://myapp/internalext/123-123-1234
который должен возвращать внутреннее значение расширения 2222.
Но мне также нужно иметь возможность поддерживать такой запрос:
http://myapp/phonenumber/[email protected]
Это должно вернуть мне значение 123-123-1234.
Чтобы иметь возможность поддерживать такие запросы, я хотел бы знать, как лучше всего создавать мои данные в Redis. Мне нужно создать веб-API node-redis.
До сих пор я пытался создавать такие данные:
127.0.0.1:6379> set phone:1
"{\"id\":1, \"locid\":1, \"loc_name\":\"zimbabwe\", \"extension\":\"2222\", \"e164\":\"1231231234\"}"
Затем я создал вторичный индекс, ссылающийся на тот же объект телефона:
127.0.0.1:6379> hset phone:lookup:e164 1231231234 1
Теперь, когда я делаю запрос, мне нужно выполнить два поиска, чтобы найти нужную мне нормативную информацию. Поэтому, если пользователь передает мне полный номер телефона, я должен выполнить следующие запросы:
1. First lookup using the e164 as key:
127.0.0.1:6379> hget phone:lookup:e164 1231231234
"1"
2. now you know that it's the first key in the "phone" set(?? i dunno if this is the terminology)
127.0.0.1:6379> get phone:1
"{\"id\":1, \"locid\":1, \"loc_name\":\"zimbabwe\", \"extension\":\"2222\", \"e164\":\"1231231234\"}"
127.0.0.1:6379>
ВОПРОСЫ
Это лучший способ организовать/создать мои данные Redis для этих типов запросов GET? Я просто читаю о хэшах. Но я недостаточно знаком, чтобы знать, как действовать дальше. Кроме того, учитывая приведенные выше данные, как мне запросить просмотр всех номеров телефонов и их данных?