我有两个分类集: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以后提供的功能。如果将侦听器添加到主集中,并且对每个接收到的事件验证对象是否应移入或移出子集中,则系统应自动处理更改。