如何获得Redis 2套交集?

时间:2019-04-14 12:06:48

标签: 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

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

1 个答案:

答案 0 :(得分:1)

如果问题是您要查找集合和zset的交集,则没有本机的方法。我可以告诉您两个选择:

  1. make:Ferrari转换为zset,选择任意权重
  2. 创建一个lua脚本以编程方式完成

通常,如果有可能将键转换为zset,则#1会更容易实现。如果不容易做到,则考虑创建两个关键点:一个是一组make:Ferrari,另一个是zset z:make:Ferrari,然后将第二个用于相交。