假设我有一个包含 100 到 1000 个字符串的集合(或者排序集合或列表,如果这样会更好) 。
然后我有一个由更多字符串组成的排序集合B ,比如一百万。
现在C应该是A和B的交集(当然是字符串)。
我想要 X 在C中的每个元组 (X, SCORE_OF_X_IN_B) 。
任何想法?
我有两个想法:
- 店间
- 将 A 存储为每个分数为 0 的排序集
- 中间存储到 D
- 得到 D 的每一项
- 删除 D
- 客户端中的简单循环
- 在我的客户端程序中循环 A
- 获取每个字符串的 zscore
虽然 1. 在 redis 方面有太多开销(例如,必须编写。redis 页面也指出了相当高的时间复杂度http://redis.io/commands/zinterstore),2. 会有 |A| 数据库连接,这不是一个好的选择。
也许我可以编写一个 redis/lua 脚本,它可以像 zscore 一样工作,但可以使用任意数量的字符串,但我不确定我的主机是否允许脚本......
所以我只是想问一下,是否有一个优雅而快速的解决方案,无需编写脚本!