我需要使用redis管理下面的数据。
Strat_range|End_range|circle|operator|operator_id|circle_id
918005000000|918005099999|UP EAST|BSNL|4|22
919967200000|919967299999|MAHARASHTRA|AIRTEL|15|20我有一个用于操作员检测的api。我是通过api通过移动电话号码和检查号码以上系列和哪个系列匹配在配置和返回线。
例如。移动电话号码:- 919967288367这个号码匹配在第二系列。这样我们才能返回到下面的输出。
919967200000|919967299999|MAHARASHTRA|AIRTEL|15|20我们需要这匹配的直接价值。因为我们没有使用循环作为性能基础。
我有10000系列。
请帮助任何人。
发布于 2017-05-02 15:07:22
最简单的方法是使用排序集,其中成员是您的行,它们的分数是范围的开始。
例如:
ZADD ops 918005000000 "918005099999|UP EAST|BSNL|4|22" 919967200000 "919967299999|MAHARASHTRA|AIRTEL|15|20"查询一个数字:
ZREVRANGEBYSCORE ops 919967288367 -inf LIMIT 0 1发布于 2017-05-02 10:43:31
解决方案很简单!将该系列存储为键而不是值。
详细信息:将这些系列存储为Redis键和值。
Value:918005099999|UP Key:918005000000 EAST Key:919967200000 Value:919967299999|MAHARASHTRA|AIRTEL|15|20
现在,给定一个移动号码919967288367,形成一个类似于9199672*的键模式,并得到所有匹配的键。
从这组键中选择最小的键并从redis中获取它的值。
https://stackoverflow.com/questions/43734883
复制相似问题