我使用 Redis Geo API 存储位置,然后使用 GEORADIUS
获取它们。
由于我只能为每个位置设置纬度、经度和名称,当我使用 GEORADIUS
获取位置时如何存储和检索其他数据?
我首先想到的是使用 GEOADD
name
作为键,然后将附加数据存储在普通键/值集中,键是与 name
相同,使用 GEORADIUS 获取位置数组,然后循环遍历该数组并使用 name
作为键获取其他数据。
这是正确的方法还是有更好的方法?
最佳答案
如果需要更新/访问其他数据,将其存储在不同的 key (通常是哈希)中是有意义的。但是,如果每个 name
的其他数据是不可变的并且只能在结合地理查询时访问,您可以将它“嵌入”在 name
之后,例如:
GEOADD geoset lon lat name:data1:data2:...:datan
当然,在获得查询的回复时,您必须“解码”结果并将每个结果分解回其组成部分。
关于redis - Geo-redis,存储附加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38879116/