我在多租户应用程序中使用RediSearch构建索引:150,000个租户每个租户平均拥有3,500名客户每个客户都有10个字段将被添加到…
因为每个租户只有3500个客户(相对较少),所以使用更大的索引你会更好。由于记录太少,每个索引的资源开销可能会超过索引本身的大小。这也将增加redis本身的密钥数量,因为为每个索引的每个索引术语创建一个新的Redis密钥。因此,如果每个数据库中有大约2000个唯一术语,那么最终将获得300M Redis密钥(2k * 150k)。相比之下,使用单个索引只会让您只有2k键。
在性能方面,也不应该有任何差别,因为租户代码本身就是一个倒置索引,因此搜索不太可能需要在更大的索引中筛选更多记录。
要删除,您只需收集符合条件的ID列表,例如“ FT.SEARCH idx @tenant:yourcode “并打电话 FT.DEL 单独记录每一条记录。我假设这不是每五秒钟执行一次的操作,所以你应该在那里完成。
FT.SEARCH idx @tenant:yourcode
FT.DEL
请注意,现在使用150k索引可能甚至不可能,因为为每个索引创建了专用的索引线程(尽管在将来的版本中可以使用在单个线程上执行索引的选项)。