redis - Geo-redis,存储附加数据

标签 redis

我使用 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/

相关文章:

redis数据结构存储股票日 yield

node.js - 使用redis发送好友状态

azure - 如何在 Azure 虚拟机上安装 Redis 缓存?

redis - `redis-cli keys *` 显示空数组,但 `redis-cli keys my_key` 显示 key

ssl - Heroku Redis 从 Hobby 升级到 Premium 0 后 Heroku 崩溃

javascript - 如何在我的简单 Express 应用中使用 Node.js 集群?

Docker托管的redis丢失数据

redis - 什么是 Booksleave IKeyCommands.Find 等价于 StackExchange.Redis

node.js - 将数据库连接对象添加到 node.js 中的 process.env 全局是一种好习惯吗?

redis - 将管道与 redis-cluster 一起使用时出现 Predis 错误