Optimization 计算Redis中索引(zset)之间关联的元素数
我在Redis中有许多索引,它们存储与其时间戳相关联的键名(它是一个zset)。假设我有5个索引:Optimization 计算Redis中索引(zset)之间关联的元素数,optimization,redis,statistics,counting,approximation,Optimization,Redis,Statistics,Counting,Approximation,我在Redis中有许多索引,它们存储与其时间戳相关联的键名(它是一个zset)。假设我有5个索引: 苹果->1,2,3 红色->1,2 绿色->3 大->3,2 小->1 我想知道有多少红苹果是大的(如果有必要的话,我可以接受一点误差)第一种方法是将苹果和红索引相交,然后搜索1和2的大索引,但这是大索引所需要的资源,如果我想知道许多其他索引的这一点,想象一下我有100个包含1000个键的索引,就速度而言是不可能的 第二种方法是为每个索引存储一个索引“链”,例如,当我添加一个新的键时,我可以访
- 苹果->1,2,3
- 红色->1,2
- 绿色->3
- 大->3,2
- 小->1
最后,如果您看到另一种方法,请告诉我,即使我必须存储另一个数据结构或更改现有的数据结构,我也愿意接受所有建议正确的答案需要有关您的数据的更多信息-zset的数量和它们索引的键的数量 在RAM和CPU方面,一个可能更有效的索引是每个zset一个位图。每个键使用一位表示归属,并调用在所有键之间执行逻辑and(相交) 或者,您可能想看看作为Redis模块构建的“极速”搜索引擎,它支持这种(以及更多)类型的搜索