我有2个有序集:
mainSet
:其中包含<score, id>
userSet
:其中包含根据某些ruless从mainSet
过滤掉的一些项目。 (系统中的每个用户都有一个user64,其中userId为键)
如果mainSet
中有一些更改,很可能的项目顺序将被重新排序,(如更新得分,添加新项目),那么我想相应地更新userSet
。 / p>
例如,
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毫秒。 (mainSet最多可包含1000个项目。)
我想知道我的案例是否有更好的方法?
答案 0 :(得分:0)
您应该查看Redis Keyspace Notifications? Keyspace通知是自2.8.0以来的一项功能。如果向主集添加侦听器,并且对于每个接收到的事件,验证是否应将对象移入或移出子集,则系统应自动处理更改。