redis - 如何在redis中获得2组的交集?

标签 redis geolocation

我在 Redis 中有 2 套,一套是 hmset 制作的:

HMSET cars:1 make Ferrari model 458 color red topSpeed 202mph

然后:

SADD make:Ferrari 1

当我输入这个命令时:

SMEMBERS make:Ferrari

我得到“1” 然后我添加:geoadd carLoc 13.361389 38.115556 1

我正在尝试使用以下命令获取这两个集合的交集:georadius carLoc 13.361389 38.115556 1 store key1 我过滤了第一组并存储在另一组中,但我找不到将 SMEMBERS make:Ferrari 的结果存储到另一组并获得它们的交集的方法。谁能帮帮我?

最佳答案

如果问题是你想找到一个集合和一个 zset 的交集,那么没有本地方法可以做到这一点。我可以告诉您两种选择:

  1. make:Ferrari 转换为 zset,选择一些任意权重
  2. 创建一个 lua 脚本以编程方式执行此操作

一般来说,如果完全有可能将该 key 转换为 zset,#1 会更容易做到。如果这不容易做到,那么考虑创建两个 key :一个是一组 make:Ferrari,另一个是 zset z:make:Ferrari 并将第二个用于路口。

关于redis - 如何在redis中获得2组的交集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55675085/

相关文章:

c# - GeoCoordinate.GetDistanceTo 使用错误的地球半径?

angular - 以 Angular 获取当前位置的坐标

algorithm - 还有什么比边界框更好的吗?

angular - 在 Redis 中缓存 Angular2 包?好还是不好?

Redis 使用 Zadd 存储多个参数

linux - Redhat/CentOS - 找不到 `GLIBC_2.18'

Redis:删除旧的未使用数据

Spring Casheable 返回的缓存对象未通过相等性检查

geolocation - 有没有免费的地理数据库?

python - 转换 osmnx 投影 map 的经纬度坐标