gpt4 book ai didi

rest - Redis 数据库设计 - 确定适当的数据类型并创建二级索引

转载 作者:可可西里 更新时间:2023-11-01 11:20:04 25 4
gpt4 key购买 nike

我有以下看起来像这样的数据:

{
location: 'zimbabwe',
phone_num: 123-123-1234,
ext: 2222
}

{
location: 'puerto rico',
phone_num: 222-222-2222,
ext: 8888
}

我的最终用户需要能够查询 REST API 并发送如下内容:

http://myapp/internalext/123-123-1234

应该返回一个内部扩展值 2222。

但我还需要能够支持这样的查询:

http://myapp/phonenumber/2222@abc.com

这应该返回值 123-123-1234

为了能够支持这样的查询,我想知道在 Redis 中创建数据的最佳方法是什么。我必须创建一个 node-redis web api。

到目前为止,我试过像这样创建数据:

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

现在,当我查询时,我必须进行两次查找才能找到我想要的 ifnormation。因此,如果用户将完整的电话号码传递给我,我必须执行以下查询:

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>

问题

这是为这些类型的 GET 请求组织/创建我的 redis 数据的最佳方式吗?我只是在阅读有关哈希的信息。但我还不够熟悉,不知道该走哪条路。另外,鉴于上述数据,我将如何请求查看所有电话号码及其数据?

最佳答案

可能是在您的 GET http://myapp/phonenumber/2222@abc.com 中,您正在寻找给定 URI 的 PSTN 号码(不仅仅是给定分机)?

如果是这种情况(我只是根据您名为“e164”的 key 在这里猜测),查找将查找 URI 为 sip:2222@abc.com 的电话号码,并且您的应用程序应返回电话号码 123-123-1234。换句话说,公司 ABC 的 DID 是什么,所以调用可以通过 PSTN 而不是通过 IP 完成...

> get phone:1
"{
\"id\":1,
\"locid\":1,
\"loc_name\":\"zimbabwe\",
\"iso3166\":\"ZW\",
\"loc_idd\":\"263\",
\"extension\":\"2222\",
\"e164\":\"4.3.2.1.3.2.1.3.2.1.3.6.2.e164.arpa.\",
\"uri":\"sip:2222@abc.zw\",
\"pstn\":\"+2631231231234\",
\"ui_disp_long\":\"+263-123-123-1234\",
\"ui_disp_short\":\"123-123-1234\"
}"
>

就您的 REST/redis 问题而言,我同意@noun。

关于rest - Redis 数据库设计 - 确定适当的数据类型并创建二级索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39399000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com