我有一个使用Redis排序集的活动源系统。
发生事件,并将消息放入每个相关用户的有序集合中,并为分数添加时间戳。
然后在用户登录时将消息分发给用户,或者如果用户当前已登录,则将消息分发给用户。
我想区分用户“已阅读”的邮件和尚未阅读的邮件。
根据我的理解,我不能只将“读/未读”属性作为成员的一部分,因为更改它会导致成员不同,因此第二次添加,而不是替换当前成员。
所以,我在想的是,对于每个用户,我必须排序集 - 一个“未读”集和一个“读取集”。
对如何交付它们不太确定。我不能只是将它们联合起来,因为我失去了读/未读之间的区别,除非我将未读的分数反转。例如。
单独返回两个集合(并在代码中合并它们)会使分页变得困难。无论读/未读状态如何,我都希望能够收到20条最新消息。
所以,问题:
谢谢!
答案 0 :(得分:3)
您可以弹出它并插入新版本,而不是尝试更新该成员。应该没问题,因为你知道会员及其时间戳。