我有两个分类集:
mainSet:包含<score, id>列表的
userSet:其中包含根据某些规则从mainSet筛选的某些项。(系统中的每个用户都有一个用户集,用户id作为密钥)
如果mainSet中有一些更改,并且很可能会重新排序项目顺序(如分数更新、添加新项目),则我希望相应地更新userSet
例如,

mainSet<key, 1, id1>
mainSet<key, 2, id2>
mainSet<key, 3, id3>
mainSet<key, 4, id4>

userSet<userKey, 2, id2>
userSet<userKey, 3, id3>

mainSet中的项目将基于一些筛选规则在userSet中添加/更新
目前,为了确保userSet中的项与mainSet最新(例如,项的得分已更改),我必须遍历mainSet中的所有项,检查筛选的规则,然后重新添加userSet中的项,但对于mainSet中的200个项,大约需要250毫秒。(主机最多可以有1000个项目)。
我想知道有没有更好的方法来处理我的案子?

最佳答案

你应该调查一下?键空间通知是2.8.0以后提供的功能。如果将侦听器添加到主集中,并且对每个接收到的事件验证对象是否应移入或移出子集中,则系统应自动处理更改。

08-27 23:18