如何在redis中获得2组的交集?
How to get intersection of 2 sets in redis?
我有两套Redis,一套是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 的交集,那么没有本地方法可以做到这一点。我可以告诉你两个选项:
- 将
make:Ferrari
转换为zset,选择一些任意权重
- 创建一个 lua 脚本以编程方式执行此操作
一般来说,如果完全有可能将该密钥转换为 zset,#1 会更容易做到。如果不好做,那就考虑创建两个key:一个是setmake:Ferrari
,另一个是zsetz:make:Ferrari
,用第二个做交集
我有两套Redis,一套是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 的交集,那么没有本地方法可以做到这一点。我可以告诉你两个选项:
- 将
make:Ferrari
转换为zset,选择一些任意权重 - 创建一个 lua 脚本以编程方式执行此操作
一般来说,如果完全有可能将该密钥转换为 zset,#1 会更容易做到。如果不好做,那就考虑创建两个key:一个是setmake:Ferrari
,另一个是zsetz:make:Ferrari
,用第二个做交集